c# – 直到满足某些条件才能“阻止”的最佳方法
发布时间:2020-12-15 03:46:09 所属栏目:百科 来源:网络整理
导读:我想创建一些以通用方式使用的方法,是否会阻止(除非某个超时到期),直到满足给定的条件. 代码中的用法将类似于: WaitUntil( condition ); 我已经尝试使用While(..)循环来实现它,但是这似乎是一种浪费. 在当前的实现中,我正在初始化“一次性”计时器,该计时器
我想创建一些以通用方式使用的方法,是否会阻止(除非某个超时到期),直到满足给定的条件.
代码中的用法将类似于: WaitUntil( condition ); 我已经尝试使用While(..)循环来实现它,但是这似乎是一种浪费. 在当前的实现中,我正在初始化“一次性”计时器,该计时器在TIMEOUT过期.我正在运行一段时间的循环,并检查计时器是否超时,如果有的话会抛出异常. 有没有简单而有效的技术来实现这种方法? 解决方法
阻止一个条件可以工作(我倾向于使用监视器为该人),但是,在大多数情况下,我建议在这里更异步的编码,意思是:而不是等待,你注册某种回调发生在条件发生.这可能是通过一个事件,或最近一个有继续的任务(ContinueWith).在c#5中,这进一步扩展了“等待”比喻,使这个透明化,即.
var foo = StartSomeWork(); ... var result = await foo; Console.WriteLine(result); 这看起来像在“等待”一样阻塞 – 但实际上恰恰相反(假设任务尚未完成);这将注册在数据可用时调用的延续,最有可能在不同的线程上. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |