2

すべての非同期の例は、最終的に .net 非同期メソッドを呼び出すようです。

async.net メソッドを呼び出さないカスタム メソッドを作成することは可能asyncですか?

これは私がこれまでに得た場所です:

    [Test]
    public void Test()
    {
        TestAsync();
    }

    public async void TestAsync()
    {
        await DoStuffAsync(1);

        Task.Run(() => DoStuffAsync(73));

        await Task.WhenAll(DoStuffAsync(2), DoStuffAsync(3));
    }

    public async Task DoStuffAsync(int n)
    {
        Thread.Sleep(1000);
        Console.WriteLine("done stuff " + n);
    }

これに関する唯一の問題は、VS が DoStuffAsync の async キーワードは役に立たないと言っていることです (待機がないため) が、待機は必要ありません。このメソッドを待機する可能性が必要なだけです。

4

2 に答える 2

1
public async void TestAsync()
{
    await DoStuffAsync(1);

    await DoStuffAsync(73);

    await Task.WhenAll(DoStuffAsync(2), DoStuffAsync(3));
}

public async Task DoStuffAsync(int n)
{
    await Task.Delay(1000);
    Console.WriteLine("done stuff " + n);
}
于 2013-01-31T11:01:56.713 に答える