C#如何取消事件队列,就是一个事件未执行完时再次触发事件,后面的事件不进入队列

C#中事件是采用队列的形式,假设一个事件执行完成需要30ms,而30ms之内触发了两次该事件,那么后面一次事件就会进入队列等待前面一次执行完后再执行,如何取消这种机制?就... C#中事件是采用队列的形式,假设一个事件执行完成需要30ms,而30ms之内触发了两次该事件,那么后面一次事件就会进入队列等待前面一次执行完后再执行,如何取消这种机制?就是前面事件未执行完时后面触发的事件一律丢弃 展开
 我来答
然后去远足
2014-07-07 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2380万
展开全部
想取消是不可能的了,这是 CLR 自己处理的而不是你写的。

但可以换种思路,题主的要求不就是同一个事件之间要互斥吗?可以设置一个 flag。事件进入方法后先判断该 flag 是否为 false,如果是则改为 true 并继续执行,否则跳出该方法。过程执行结束后再改回 false。
追问
private void myCamera_NewImageDelegate(ref ImageInfo ImageInfo)

{
}
这是相机的SDK封装好的,订阅事件,下面就是事件了,相机收到外部的触发信号就会触发事件,外部触发过快的话事件堆积程序就卡死了,不知怎么解决
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式