2009-07-30 23 views
0

Gibt es eine Möglichkeit, eine Methode in einem Hintergrundthread aufzurufen?So rufen Sie den Hintergrundthread auf

Ich bin mir bewusst, Background/Erstellen eines Threads oder verwenden ThreadPool.QueueUserWorkItem usw., aber das ist nicht die Antwort, ich suche

für z.B. die SCSF hat Attribute die Methode, um sicherzustellen, auf einem Hintergrund oder einen UI-Thread aufgerufen wird

Ich mag würde etwas ähnliches für eine kleine App tun und bin auf der Suche für ein funktionierendes Beispiel

+1

Was ist mit QueueUserWorkItem falsch? Ist es nicht Hintergrund genug? Stimmt es nicht, dass Threads, die als Ergebnis von QUWI ausgeführt werden, Hintergrundthreads sind? – Cheeso

+0

oben erklärt ---- wieder zitiert ... die SCSF hat Attribute um sicherzustellen, dass die Methode auf einem Hintergrund oder einem UI-Thread aufgerufen wird Ich möchte etwas ähnliches für eine kleine App tun und bin auf der Suche nach einem funktionierenden Beispiel – Kumar

Antwort

0

Es gibt viele Möglichkeiten, eine Methode auf einem Hintergrund-Thread aufzurufen.

Möchten Sie blockieren, während die Methode ausgeführt wird? Möchten Sie ein Ergebnis von der Methode zurückgegeben? Soll dieses Ergebnis in der Benutzeroberfläche angezeigt werden? Wird die Methode nur einmal aufgerufen? Viele Male, wie gebraucht? Viele Male in einer Schleife? Asynchron? Sollte der Hintergrundthread fortgesetzt werden, wenn Ihre App beendet wird? Die Antwort auf diese Fragen wird Ihnen sagen, welche Methode Sie verwenden sollten.

Sie können einen Überblick über die verschiedenen Thread Message Passing-Methoden von einem großen article bei The Code Project erhalten.

0

Thread-Pool verwendet bereits Hintergrundthreads. Sie haben jedoch keine Kontrolle über diese Threads. Wenn Sie die Kontrolle wünschen, müssen Sie System.Threading.Thread verwenden. Dadurch haben Sie mehr Kontrolle darüber, wie ein Thread erstellt wird (Hintergrund, Vordergrund usw.) und verwaltet (anhalten, fortsetzen, schlafen usw.).