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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.95218 の関連記事表示

<< 0 >>
■95218  Re[1]: サブルーチンから呼び出すawait/asyncの動きについて
□投稿者/ Hongliang -(2020/07/02(Thu) 12:45:22)
    >  private  void button1_Click(object sender, EventArgs e)
    >  {
    >   label1.Text = "実行中・・・";
    > 
    >   DoWorkAsync();
    > 
    >   label1.Text = "完了";                 // B
    >  }
    > }
    DoWorkAsync()の完了を待っていないのですから、直ちに
    label1.Text = "完了";
    が実行されるのは当然ですよね。
    
    基本的に、async voidになるのはイベントハンドラだけです。
    つまり、button1_Clickメソッド以外は、必ずasync Task(返値を返す場合はasync Task<T>)にします。
    DoWorkAsyncはasync Task DoWorkAsyncです。
    
    そうすれば、button1_Clickは
    await DoWorkAsync();
    と記述でき、DoWorkAsyncの完了を待って
    label1.Text = "完了";
    を実行できるようになります。
記事No.95217 のレス /過去ログ165より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -