3

私は以下のコードを書きました、

Task.Factory.StartNew<int>(async () =>
        {
            await Task.Delay(1000);
            return 42;
        });

しかし、「async」キーワードの下に読み取り行が表示され、構文エラーのためにコードをコンパイルできません。

ありがとう!

4

2 に答える 2

5

ラムダTask.Runに対してより自然な構文を持つ、を使用することをお勧めします。async

var task = Task.Run(async () =>
{
  await Task.Delay(1000);
  return 42;
});
于 2012-10-22T14:33:26.600 に答える
2

Task<T>次のように a を返す必要があります。

Task.Factory.StartNew<Task<int>>(async () =>
{
    await Task.Delay(1000);
    return 42;
});

asyncキーワードはTaskTask<T>またはを返す必要がありますvoid。詳細については、async (C# リファレンス)を参照してください。

于 2012-10-22T14:19:58.147 に答える