💬
〇〇ができる状態になるまで待機する(タイムアウトあり)
Taskでの非同期処理とかいろいろ調べましたが、結構めんどくさいしこれでよくね?ってなりました。その関数を紹介します。
bool WaitTillBeAbleToHogeHoge(int count = 0, int timeout = 10000, int sleepMiliSec = 10)
{
if (count > timeout / sleepMiliSec) { return false; }
Thread.Sleep(sleepMiliSec);
try
{
// ここで判断したいことをする
var hogehoge = HogeHoge.hogehoge();
return true;
}
// 想定されるエラーを指定
catch (NullReferenceException)
{
return WaitTillBeAbleToGetCurrentPosition(count+1);
}
}
Discussion