2011-01-17 11 views
1

haben nur ein normales Verfahren wieWie kann man eine normale Methode asynchron aufrufen?

Leere DosomethingLong()

Was ist der beste Weg, um es in einem Asynchron-Weg zu nennen?

+0

Welche Version von .NET Framework? –

+2

Bester Weg nach welchen Kriterien? – DHN

+0

@DHN: "Kriterien" ist der Plural von "Kriterium". :) (Ich konnte nicht widerstehen.) – Mehrdad

Antwort

6

Der üblicher Weg ist, einen Delegierten des Verfahrens zu schaffen:

Action myMethod = DosomethingLong; 

dann führen Sie es mit dem asynchron APM (example):

IAsyncResult result = myMethod.BeginInvoke(..., null); 

// ... 

myMethod.EndInvoke(result); 

Es gibt andere Methoden, die Sie verwenden; Verwenden Sie einen Thread, verwenden Sie BackgroundWorker, usw., abhängig von Ihren genauen Anforderungen.

0

Wenn .NET 4 mit könnten Sie tun

var yourLongRunningTask = Task.Factory.StartNew(DosomethingLong); 
// some time later 
Task.WaitAll(yourLongRunningTask); 
Verwandte Themen