加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

.net – 禁用Windows窗体上的所有事件

发布时间:2020-12-14 01:36:55 所属栏目:Windows 来源:网络整理
导读:有没有办法暂时禁用 Windows窗体上的所有事件? 我的情况是主线程上的事件损坏了辅助线程上的处理. (主线程事件正在修改数据绑定到辅助线程使用的变量的控件的内容.)寻找一种“锁定”表单的方法,直到辅助线程上的处理完成. (显然,将处理移动到主线程会这样做
有没有办法暂时禁用 Windows窗体上的所有事件?

我的情况是主线程上的事件损坏了辅助线程上的处理. (主线程事件正在修改数据绑定到辅助线程使用的变量的控件的内容.)寻找一种“锁定”表单的方法,直到辅助线程上的处理完成. (显然,将处理移动到主线程会这样做 – 但它也会“冻结”UI,这也不是我想要的.)

解决方法

一些不同的选项应该可以让你解决这个问题:

>禁用任何会触发非线程安全事件的控件,
>使用同一对象上的监视器锁定修改变量或所有事件提升者的所有代码,或
>分离并重新连接所有处理程序.

我会选择第一个选项,可能还有将光标设置为沙漏和/或在状态栏中设置消息.它很简单,有效,并且不会导致实际UI冻结.我会避免第三种选择,因为它会“破坏”表单在其工作时的行为.第二种选择的功效取决于你如何实施它;它可以很容易地冻结UI,这是你不想做的事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读