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?
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?
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.
Wenn .NET 4 mit könnten Sie tun
var yourLongRunningTask = Task.Factory.StartNew(DosomethingLong);
// some time later
Task.WaitAll(yourLongRunningTask);
Welche Version von .NET Framework? –
Bester Weg nach welchen Kriterien? – DHN
@DHN: "Kriterien" ist der Plural von "Kriterium". :) (Ich konnte nicht widerstehen.) – Mehrdad