|
You last visited: Today at 06:39
Advertisement
[c#] Frage zu Thread's / Threading
Discussion on [c#] Frage zu Thread's / Threading within the .NET Languages forum part of the Coders Den category.
07/14/2013, 17:45
|
#1
|
elite*gold: 12
Join Date: Jun 2009
Posts: 2,620
Received Thanks: 1,239
|
[c#] Frage zu Thread's / Threading
Hey Leute,
Immer, wenn ich einen Thread ausführe, "freezed" die ganze GUI. Wie kann ich das ändern ?
|
|
|
07/14/2013, 17:46
|
#2
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
Wie führste ihn den aus ?
|
|
|
07/14/2013, 17:53
|
#3
|
elite*gold: 12
Join Date: Jun 2009
Posts: 2,620
Received Thanks: 1,239
|
So :
Code:
ThreadStart t_wf_reload = new ThreadStart(wf_reload);
Thread thread = new Thread(t_wf_reload);
thread.Start();
Ist im Thread dann z.B
Code:
Thread.Sleep(3000);
Wird die komplette GUI gefreezed für diese Zeit. Auch für die Zeit, in der der Thread iwas machen soll.
|
|
|
07/14/2013, 18:34
|
#4
|
elite*gold: 0
Join Date: Dec 2007
Posts: 728
Received Thanks: 460
|
|
|
|
07/14/2013, 18:57
|
#5
|
elite*gold: 0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,810
|
Also bei mir klappt das ohne Probleme...
Quote:
Originally Posted by -AmA-
|
Nein, hör auf diesen Mist zu posten.
|
|
|
07/14/2013, 19:12
|
#6
|
elite*gold: 4
Join Date: Feb 2008
Posts: 3,847
Received Thanks: 1,267
|
?
|
|
|
07/14/2013, 19:39
|
#7
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
@Kraizy jub normal sollte das so laufen, würd ich auch sagen *kopfkratz*
DoEvents ist nen astreine Sache wenn man ne Menge Kopfweh will und in Kombination mit Threading dann endgültig sehr merkwürdig.
|
|
|
07/14/2013, 20:26
|
#8
|
elite*gold: 0
Join Date: Dec 2012
Posts: 255
Received Thanks: 110
|
Dann wartet der GUI thread wohl auf einen Mutex der in dem andern Thread gerade locked ist.
|
|
|
07/14/2013, 21:04
|
#9
|
elite*gold: 12
Join Date: Jun 2009
Posts: 2,620
Received Thanks: 1,239
|
Quote:
Originally Posted by Kraizy
Also bei mir klappt das ohne Probleme...
Nein, hör auf diesen Mist zu posten.
|
Bei mir iwie nicht. Die GUI wird erst weiter "ausgeführt" wenn der Thread beendet ist.
Quote:
Originally Posted by Master674b
Dann wartet der GUI thread wohl auf einen Mutex der in dem andern Thread gerade locked ist.
|
Mutex ?
Also ich habe die Thread's erstellt in der Main_Load intizialisiert. Ist das richtig ?
€ : Habe ich z.B nur "Thread.sleep(10000) " in der Methode, funktioniert das ganze. Soll er aber nach den 10 Sekunden den Text eines Label's ändern, bekomme ich wieder den Fehler mit dem Threadübergreifenden Zugriff. Also mache ich was mit den Invokes falsch.
Bei mir sieht das bisher so aus :
Code:
if (InvokeRequired)
{
BeginInvoke(new MethodInvoker(my_Method));
}
else
{
}
|
|
|
07/14/2013, 22:08
|
#10
|
elite*gold: 0
Join Date: Dec 2007
Posts: 728
Received Thanks: 460
|
Code:
label.Invoke((MethodInvoker)(() => label.Text = "Hier ist Text"));
|
|
|
07/14/2013, 22:16
|
#11
|
elite*gold: 12
Join Date: Jun 2009
Posts: 2,620
Received Thanks: 1,239
|
Quote:
Originally Posted by -AmA-
Code:
label.Invoke((MethodInvoker)(() => label.Text = "Hier ist Text"));
|
Code:
Zusätzliche Informationen: Invoke oder BeginInvoke kann für ein Steuerelement erst aufgerufen werden, wenn das Fensterhandle erstellt wurde.
|
|
|
07/14/2013, 22:46
|
#12
|
elite*gold: 0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,810
|
Steht ja da, du versuchst auf dein Label zuzugreifen, bevor es überhaupt existiert.
|
|
|
07/15/2013, 08:24
|
#13
|
elite*gold: 0
Join Date: Apr 2010
Posts: 10,291
Received Thanks: 3,611
|
Ansonsten schau dir doch einfach mal die neue Tasks Klasse an ->
|
|
|
07/15/2013, 10:53
|
#14
|
elite*gold: 12
Join Date: Jun 2009
Posts: 2,620
Received Thanks: 1,239
|
Quote:
Originally Posted by Shawak
Ansonsten schau dir doch einfach mal die neue Tasks Klasse an ->
|
Danke für den Tipp ! Das klappt mitlerweile ganz gut. Das einzigste Problem, das noch besteht ist, dass die UI ( bzw. GUI ) freezed während :
Code:
Thread.Sleep(2000);
|
|
|
07/15/2013, 11:07
|
#15
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
wenn du das genau so aufrufst dann friert natürlich deine hauptform(/der thread dieser) ein und nicht der thread den du neu gestartet hast, wenn du den einfrieren willst musst es halt im kontext des neu erstellten threads aufrufen
|
|
|
|
|
Similar Threads
|
C++ Threading
03/01/2013 - C/C++ - 3 Replies
Ich habe da mal eine frage zu Threading in C++
Wie kann ich eine Thread Array starten?
ich weiß das ich in C# es z.B. so machen kann:)
Thread myThread;
myThread= new myThread;
|
Threading
02/22/2013 - Nostale - 3 Replies
Hi!I have a question for what i need multithreading i developing game server.Soo i know that i need this for connection.
|
C# Cross Threading
10/13/2012 - .NET Languages - 5 Replies
I was working on Console Applications for a long time and i was able to edit the console from almost everywhere in the project; However, when i migrated to windows forms applications i wondered that i can't edit for example a textBox from any other class because it tells me some error about cross threading
So can any one help me ?
|
C++ Threading
03/24/2012 - CO2 Programming - 13 Replies
Anybody got some good threading tutorials in c++?
#Edit
Using boost would be fine?
|
Threading
11/18/2011 - CO2 Private Server - 10 Replies
What should I do?
A thread for every map that's used by players, a global thread for all players or a single thread for every player.
|
All times are GMT +2. The time now is 06:39.
|
|