private void main()
{
bool flag1 = await test1();
bool flag2 = await test2();
if (flag1 && flag2)
{
// next step
}
else if (flag2)
{
// test2()を再度実行(flag2がtrueになるまで実行する)
}
else if (flag2)
{
// test1()を再度実行(flag1がtrueになるまで実行する)
}
}
private async Task<bool> test1()
{
return await System.Threading.Tasks.Task.Run(() =>
{
try
{
Thread.Sleep(5000);
return true;
}
catch
{
return false;
}
});
}
private async Task<bool> test2()
{
return await System.Threading.Tasks.Task.Run(() =>
{
try
{
Thread.Sleep(3000);
return true;
}
catch
{
return false;
}
});
}
書き方がまちがえているというよりは、やりたいことだと思っていただけるとたすかります。
上記のようにそれぞれ時間のかかる処理を同時にバックグラウンドで実行させ、全ての処理が終わったらその結果を元に次のステップに移りたい場合、どういうやり方が正しいのかわかりません。
どうぞご教授お願いします。
ちなみに、それぞれの処理というのは各種データなどをファイルなどからそれぞれ取得してくるなどのことです。
また、この場合、各種データはデータ間での干渉はないのですが、それらのデータがすべてないと次のステップに進むことができない。とお考えいただければと思います。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/06 21:47