当我们在C#中绑定数据时,更改数据的线程也会导致控件发生更改。但是,如果此线程不是在其上创建控件的线程,则会出现"非法跨线程操作"异常。
解决方案
我们一般这样操作:
private void SomeEventHandler(Object someParam) { if (this.InvokeRequired) { this.Invoke(new SomeEventHandlerDelegate(SomeEventHandler), someParam); } //Regular handling code }
InvokeRequired是控件上的一个属性,以查看我们是否在正确的线程上,然后Invoke将在正确的线程上调用委托。
日期:2020-03-23 23:12:08 来源:oir作者:oir