Invoke, BeginInvoke, Thread, BackgroundThread

06/05/2010 - 21:55 von Markus Mayer | Report spam
Hallo,

mir ist nich ganz klar, wann nehme ich was?
Invoke verstehe ich nicht, synchron ist doch eh alles.

BeginInvoke - klar, wenn ich asynchron arbeiten muss. ThreadID Probleme.

Hat jemand vielleicht
a) Kurzbeschreibung
b) kleine gute Beispielprojekte
c) wann man eben, bei welchem typischen Fall was nimmt?

Herzlichen Dank.
Viele Grüße Markus
 

Lesen sie die antworten

#1 Frank Dzaebel
07/05/2010 - 07:43 | Warnen spam
Hallo Markus,

mir ist nich ganz klar, wann nehme ich was?
Invoke verstehe ich nicht, synchron ist doch eh alles.
BeginInvoke - klar, wenn ich asynchron arbeiten muss. ThreadID Probleme.



Dazu kurz - Was gemeinhin leicht übersehen wird ist, dass
Invoke auch blockieren kann (bzw. ggf. an der Stelle solange
stehen bleibt), wenn die Message-Pump (Queue) nicht
bedient wird - also beispielsweise schlicht gerade eine while-
Schleife im Main-Thread (bzw. den Steuerelementthread) làuft.
BeginInvoke löst das Problem zwar auch *nicht* direkt (obwohl es
auf einem ThreadPool Thread làuft), aber man kann zumindest
dann durch die sofortige Rückkehr bei BeginInvoke
aktiv etwas tun (und warten), was im Prinzip auch über eine
InvokeRequired Abfrage Schleife möglich wàre.

[Galileo Computing :: Visual C# 2008 - 9.6 Asynchrone Methodenaufrufe]
http://openbook.galileocomputing.de...09_006.htm

[Sicheres und einfaches Multithreading in Windows Forms]
http://msdn.microsoft.com/de-de/lib...51089.aspx

[What's the difference between Invoke() and BeginInvoke() - Stack
Overflow]
http://stackoverflow.com/questions/...egininvoke



Hat jemand vielleicht
a) Kurzbeschreibung
b) kleine gute Beispielprojekte
c) wann man eben, bei welchem typischen Fall was nimmt?



[Bearbeiten von Steuerelementen aus Threads]
http://dzaebel.net/ControlInvoke.htm

[Asynchronous Method Invocation - CodeProject]
http://www.codeproject.com/KB/cs/As...ation.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen