以下のように非async関数proc1から、awaitが必要な関数proc3を呼び出すのに async void の関数proc2を挟んでいます。
この時、proc3/proc2のすべての処理が終わってからproc1に返ってきてほしいのですが、ログを確認すると
Enter proc2⇒Enter proc3⇒proc3 start⇒Exit proc2⇒proc3 end⇒Exit proc3
となってしまいます。
Enter proc2⇒Enter proc3⇒proc3 start⇒proc3 end⇒Exit proc3⇒Exit proc2
という順序で実行させるにはどうすれば良いのでしょうか。
private void proc1()
{
Debug.Write("Enter proc2");
proc2();
Debug.Write("Exit proc2");
}
private async void proc2()
{
Debug.Write("Enter proc3");
if(await proc3())
{
foo();
}
Debug.Write("Exit proc3");
}
private async Task<bool> proc3()
{
Debug.Write("proc3 start");
await bar();
Debug.Write("proc3 end");
return true;
}
探検
ふらっと C#,C♯,C#(初心者用) Part143
■ このスレッドは過去ログ倉庫に格納されています
56デフォルトの名無しさん (ワッチョイ de4b-Uw8s)
2019/05/20(月) 15:53:54.65ID:IYtfHjiI0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★2 [ぐれ★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★3 [ぐれ★]
- 【速報】高市総理が官邸入り [Hitzeschleier★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【震度6強】政府 危機管理センターに官邸対策室を設置 [ぐれ★]
- 青森で火事 [Hitzeschleier★]
- 地震 ★2
- 高市の態度が日本に殺された多くの人々の憎しみ、苦しみを呼び覚ました。これは日本崩壊の序章に過ぎない [165981677]
- 【速報】高市早苗、起床 [779938112]
- 高市すごい勢大発生 [256556981]
- 巨大地震 [957955821]
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
