![]() |
1
2
为什么不在库对象的ctor中创建控件?如果假定库实例是在UI线程中创建的,则可以调用Control.Invoke on 那个 控件位于库内部,事件调用将位于使用者的UI线程上。 当然,这并不是万无一失的。使用者可能会在工作线程中创建实例,但它至少提供了您所追求的目标的某种级别,如果他们使用工作线程,他们实际上会期望事件无论如何都需要调用。 |
![]() |
2
2
好吧,invoke是将线程与主线程“合并”(同步)的(正确的)方法。最简单的方法是使用控件(如mainform)和调用
第二,我们 提升 事件和 扔 例外情况。使用正确的词语可以避免混淆。 |
![]() |
3
2
这取决于您使用什么工具箱来显示“主线程”中的数据。如果您使用的是Windows窗体,那么应该能够使用control.invoke或control.begininvoke将事件封送回UI线程。这在紧凑框架中得到了支持。 大多数示例使用isynchronizeinvoke而不是控件-但代码应该相同。但是,您需要在代码中引用一个UI元素,以便在引发事件时与对BeginInvoke的调用一起使用。 |
![]() |
user107586 · 如何处理等待句柄不会导致无限循环? 5 月前 |
![]() |
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 5 月前 |
![]() |
BenjiFB · C#内存缓存:在一次操作中追加到列表? 5 月前 |
![]() |
András Takács · Python多线程问题 9 月前 |
|
András Takács · Python多线程错误 9 月前 |