Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 20:53

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Thread nicht auf GUI-Thread starten

Discussion on Thread nicht auf GUI-Thread starten within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Thread nicht auf GUI-Thread starten

Hi,

habe bis jetzt immer meine Threads im GUI Thread gestartet. Also zb unter einem Button Klick event. Nun führt das jetzt zu einem einfrieren der GUI

Wie starte ich denn den thread nicht auf dem GUI Thread?

Hoffe das war verständlich genug
Ludder231 is offline  
Old 06/22/2016, 23:09   #2
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
@

es gibt nur einen gui thread. Es kann aber passieren das ein System.Threading.Task mal auf dem gui thread ausgeführt wird. Um das zu vermeiden:

Code:
ThreadStart ts = new ThreadStart(function);
Thread t = new Thread(ts);
t.IsBackground = true;
t.Start();
Asynchrone programmierung für kleinere aufgaben funktioniert so:
Code:
Task.Run(() =>
//DeinCode
));
Normalerweise wird auch das in einem extra thread ausgeführt:
Code:
Task t = new Task(new Action(function));
t.Start();
Beim funktionsparameter die () weglassen nicht vergessen.
Eine funktion mit parametern zu starten funktioniert ähnlich
YatoDev is offline  
Thanks
1 User
Old 06/23/2016, 11:44   #3
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Quote:
Originally Posted by »FlutterShy™ View Post
@

es gibt nur einen gui thread. Es kann aber passieren das ein System.Threading.Task mal auf dem gui thread ausgeführt wird. Um das zu vermeiden:

Code:
ThreadStart ts = new ThreadStart(function);
Thread t = new Thread(ts);
t.IsBackground = true;
t.Start();
Asynchrone programmierung für kleinere aufgaben funktioniert so:
Code:
Task.Run(() =>
//DeinCode
));
Normalerweise wird auch das in einem extra thread ausgeführt:
Code:
Task t = new Task(new Action(function));
t.Start();
Beim funktionsparameter die () weglassen nicht vergessen.
Eine funktion mit parametern zu starten funktioniert ähnlich
Danke schonmal. Aber wo muss ich den Thread initialisieren etc. weil wenn ich den unter dem Button_Klick event starte ist der doch aufm GUI thread oder nciht? Oder bin ich da jetzt aufm falschen weg
Ludder231 is offline  
Old 06/23/2016, 12:14   #4
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Ne. Wenn du den thread so startest wie aus Beispiel 1 und 3 dann kehrt der nach dem start des Threads sofort zurück und wartet nicht darauf das er beendet ist.
Du musst aber auch beachten das du wenn du vom thread auf die gui zugreifen willst das du das control invoken musst.
YatoDev is offline  
Thanks
1 User
Old 06/23/2016, 13:39   #5
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Quote:
Originally Posted by »FlutterShy™ View Post
Ne. Wenn du den thread so startest wie aus Beispiel 1 und 3 dann kehrt der nach dem start des Threads sofort zurück und wartet nicht darauf das er beendet ist.
Du musst aber auch beachten das du wenn du vom thread auf die gui zugreifen willst das du das control invoken musst.
Okay danke. Ja das mit den invoken kenn ich bereits
Ludder231 is offline  
Reply


Similar Threads Similar Threads
Warum werden Thread's wie 'Böse Fee' geclosed aber der 'Funny Pics' Thread nicht?
04/28/2016 - Off Topic - 51 Replies
Verstehe ich einfach nicht, der Böse Fee Thread wird geclosed da man dort angeblich nur Beiträge farmt aber der Funny Pics IV Thread bleibt offen. Ich sehe keinen unterschied zwischen beiden Thread's schließlich dienen sie beide nur zur Belustigung der User.
Thread Titel ändert sich nur im Thread, nicht in Foren Ansicht?
10/25/2012 - Off Topic - 4 Replies
Hi, wenn ich einen Thread umbenne, beispielsweise jetzt diesen hier, dann ändert sich nicht der "richtige" Titel, wie kann man das machen? Wenn ich also auf EDIT gehe und oben bei Titel den Text abändere, bleibt der ursprüngliche gleich, nur in der Threadansicht ändert er sich. mfg gamer8411
Warrock 2 Mal Starten......... (THREAD)
01/07/2011 - WarRock - 5 Replies
moiin, also hab gehört das man warrock 2 mal starten kannn und will das auch machen ......und ich darf ja keine fragen stellen dewswegen postet hier die links für die TUT für vwmare oder so oder eure skype äddy :D hoffe habe nix falsch gemacht DANKE IM VORRAUS!:mofo:



All times are GMT +1. The time now is 20:57.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.