如何使用ISynchronizeInvoke接口?
ISynchronizeInvoke
的工作过程是ISynchronizeInvoke
?
如何在C#中使用它?
这基本上描述了一种在线程之间推送工作的方法; 要将一项工作推送到另一个线程,请使用Invoke
(同步)或BeginInvoke
(异步 – 最好在以后调用EndInvoke
)。 同样, InvokeRequired
用于询问“我需要这样做吗?还是我可以自己执行这项工作?”。
这个界面最常见的用途是在windows-forms中,它是如何将工作推送到UI线程的一部分; 您当然可以同样使用Control.Invoke
/ Control.BeginInvoke
,但表单控件实现此接口以允许抽象 – 因此下游代码不需要将自身绑定到Windows窗体。 在表单的情况下, InvokeRequired
意味着“我是UI线程吗?”。
实际上,我不确定直接使用它是否常见。 在UI上处理事件更常见,并且UI使用最合适的本地机制处理线程切换。
典型用法:
obj.Invoke((MethodInvoker) SomeMethod);
它在obj
管理的线程上执行(通过委托) SomeMethod
(实现接口)。
ISynchronizeInvoke接口
ISynchronizeInvoke接口提供有关事件发生的对象之间的同步和异步通信。 实现此接口的对象可以接收事件已发生的通知,并且可以响应有关该事件的查询。 通过这种方式,客户端可以确保在提交取决于第一个请求完成的后续请求之前已处理了一个请求。
还请参考
https://blogs.msdn.com/jaredpar/archive/2008/01/07/isynchronizeinvoke-now.aspx
上述就是C#学习教程:如何使用ISynchronizeInvoke接口?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1000249.html