私はこの簡単なコードを持っています:
public static async Task<int> SumTwoOperationsAsync()
{
var firstTask = GetOperationOneAsync();
var secondTask = GetOperationTwoAsync();
return await firstTask + await secondTask;
}
private async Task<int> GetOperationOneAsync()
{
await Task.Delay(500); // Just to simulate an operation taking time
return 10;
}
private async Task<int> GetOperationTwoAsync()
{
await Task.Delay(100); // Just to simulate an operation taking time
return 5;
}
偉大な。これはコンパイルされます。
しかし、コンソール アプリケーションがあり、上記のコードを実行したいとします ( を呼び出しますSumTwoOperationsAsync())。
static void Main(string[] args)
{
SumTwoOperationsAsync();
}
しかし、(を使用する場合)上下にsync同期する必要があることを読みました:
これは、Main関数を としてマークする必要があるということasyncですか?
コンパイル エラーがあるため、それはできません。
エントリ ポイントを「async」修飾子でマークすることはできません
非同期のことを理解していれば、スレッドは関数に入りMainます→→SumTwoOperationsAsync両方の関数を呼び出して出ます。しかし、SumTwoOperationsAsync
私は何が欠けていますか?