Forum: Win32/Win64 API (native code)
C#
by Khabarakh,
14. Mär 2008
Wie gesagt, ist ziemlich parallel zum BackgroundWorker:
void thread1_Event()
{
lblStatusText.Text = resManager.GetString("ThreadStatusRunning");
this.Update();
Thread.Sleep(0);
}
void ThreadProc()
Forum: Win32/Win64 API (native code)
C#
by Khabarakh,
14. Mär 2008
Wenn es eine ThreadAbortException ist, ist das goldrichtig :zwinker: :
Damit wird also garantiert, dass der Thread nicht einfach abgewürgt wird (was nicht gerade der BCL-Philosophie entspräche), sondern davor noch alle finally-Blöcke sauber durchlaufen werden. Mit genügend Rechten kann der Thread seinen Abbruch sogar selbst stoppen.
PS: Der Thread ist danach allerdings nicht mehr nutzbar...
Forum: Win32/Win64 API (native code)
C#
by Khabarakh,
13. Mär 2008
Das würde ich auch empfehlen, dadurch habe ich InvokeRequired noch nie benötigt.
In diesem Fall bieten sich entweder der Thread-Pool oder Asynchronous Delegates an:
// ThreadPool
// Der Name sagt alles: anstatt jedes Mal einen neuen Thread zu
// erstellen, wird wenn möglich ein alter aus dem Pool benutzt.
// Kein Rückgabewert
// => Nach Ende noch einmal Invoke oder andersweitige Übergabe...