私はこの簡単なコードを持っています:
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
私は何が欠けていますか?