我想有一個異步調用的函數如下:C#異步方法調用
我會從主方法調用一個方法,這個功能應該是異步的,我該怎麼辦呢?
一個小例子:
private static void Main(string[] args)
{
StartDoingNothingAsync();
Console.WriteLine("test");
Console.Read();
}
private static async void StartDoingNothingAsync()
{
for (var i = 0; i < 5000; i++)
{
//do something
}
Console.WriteLine("leaved");
}
我會先輸出「測試」,「闊葉」之前,我該怎麼練呢?
有了這個,我會實現,即「StartDoing ...」方法是完全異步的。在這種方法中,我會做一些需要很長時間的人員,例如寫一個大文件。主函數中的代碼應該在一個線程中執行,並且「StartDoing ...」應該在另一個線程中執行。我將減少主函數中的阻塞代碼 – 2014-11-24 08:34:28
@MarcelHoffmann:如果您實際上只想開始一個單獨的任務,請使用「Task.Run」。使用'async' *將會使用一個線程池線程(在這種情況下),但是隻有在第一個「await」之後需要安排一個延續。使用'Task.Run'會更清晰。 – 2014-11-24 08:58:26
感謝與任務tipp。其實我有一個問題。任務和異步/等待之間有什麼不同,我應該在哪裏使用哪些?感謝以前的答覆。 – 2014-11-24 09:42:23