使用c#在指定的时间内等待函数执行结果
在指定的时间内等待某个函数的执行结果的方法。该方法接受三个参数:等待的最大时间、等待的频率和要等待的函数。方法会在指定的时间内每隔一定频率检查函数的执行结果,如果在等待时间内函数返回了true,则表示等待成功,返回true;如果超过等待时间仍未返回true,则表示等待失败,返回false。
/// <summary>
/// 在指定的时间内等待某个函数的执行结果,并返回一个布尔值表示是否等待成功,
/// 调用 bool result = WaitSomething(5000, 1000, () =>{})
/// </summary>
/// <param name="timeout">表示等待的最大时间,以毫秒为单位</param>
/// <param name="freq">表示等待的频率,即每隔多少毫秒检查一次函数的执行结果</param>
/// <param name="func">表示要等待的函数,它是一个返回布尔值的委托</param>
/// <returns></returns>
public static bool WaitSomething(int timeout, int freq, Func < bool > func)
{
for(int index = 0; index < timeout; index += freq)
{
if(func()) return true;
Thread.Sleep(freq);
}
return false;
}
使用示例
bool result = WaitSomething(5000, 1000, () =>
{
// 执行一些操作,返回一个布尔值
return true;
});