C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 158 を表示中)
■91649 / )  Re[1]: async/awaitの使い方
□投稿者/ Hongliang (843回)-(2019/07/17(Wed) 16:53:02)
肝心のUI側でSleepしてたら台無しです。
まずUI側をasync/awaitで書く必要があります。

private async void Button_Click(object sender, RoutedEventArgs e)
{
    var asyncTest = new AsyncTest();
    await asyncTest.MethodAsync(); // awaitableなメソッドはAsync接尾辞がお約束
    MessageBox.Show("Done");
}

await MethodAsyncするにはMethodAsyncがTaskを返す必要があるので、
MethodAsyncはこんな感じになるでしょう。

public async Task MethodAsync()
{
    await Task.Run(() => {
        HeavyWeightMethod();
    });
    // または単純に、asyncを外したうえで
    // return Task.Run(() => HeavyWeightMethod());
}

返信 編集キー/


管理者用

- Child Tree -