使用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;
});
posted @ 2023-10-30 15:23  少年。  阅读(95)  评论(0编辑  收藏  举报