Я кодирую функцию, которая получает условие, которое должно быть выполнено, и время ожидания, и оно завершается, когда условие выполняется или оно истекает.
Это то, что я до сих пор:
public static bool CheckWithTimeout(bool toBeChecked, int msToWait)
{
//var src = CancellationSource
var task = Task.Run(()=> {
while (!toBeChecked)
{
System.Threading.Thread.Sleep(25);
}
});
if (task.Wait(TimeSpan.FromMilliseconds(msToWait)))
return toBeChecked;
else
return false;
}
Это хорошо работает для простых bools, но я хотел бы назвать его следующим образом:
CheckWithTimeout(myValue > 10, 500)
И он вернется, когда myValue больше десяти или пройдено 500 мс (и возвращает false вэто дело)
Я проверил и думаю, что Func - это то, что мне нужно, но .. Я не могу найти подходящий пример.Кроме того, если для этого уже существует метод, я бы определенно предпочел его.