我有下面的代碼示例:異步方法在C#:延續點
using System;
using System.Threading;
using System.Threading.Tasks;
namespace asynctest {
class Program {
public static void Main (string[] args) {
var program = new Program();
program.run();
}
public Program() {
}
public void run() {
asynctest();
Console.WriteLine ("Sync");
while (true) {
}
}
public async Task asynctest() {
await Task.Delay (100);
Console.WriteLine ("Async");
}
}
}
當開始這個節目,我所期望的輸出只是「同步」,因爲asynctest法永遠不會在繼續我碼。
而是輸出「同步」和「異步」。
我現在的問題是程序從run方法切換到asynctest方法以打印「異步」行。從我以前的協程經驗來看,這不應該發生。從控制檯程序啓動
它永遠不會從'run'切換到'asynctest'。另一個線程在'Task.Delay'後執行代碼(即繼續)。在這種情況下'ThreadPool'線程 –