J C*_*ins 1 vb.net user-controls invoke owner visual-studio
要求所有.net控件都是在主线程上创建的,至少这是必要的,如果意图是将控件集成到通常就是这种情况的接口中.另外,为了修改控件的属性,必须使用自己的invoke方法从控件的线程调用该方法.
有没有办法直接查看控件并识别其拥有的线程?
另外或相反,是否可以检测当前线程是否是"主线程"?Visual Studio标识为可在运行时看到的主线程的线程有什么特别之处,还是仅仅是这是VS执行初始化调试的第一个线程?
另外或相反,是否可以检测当前线程是否是"主线程"?
您可以使用Control.InvokeRequired查看您是否在相应的线程上.如果不是,则应使用Control.Invoke或Control.BeginInvoke将调用封送回拥有的线程.
Visual Studio标识为可在运行时看到的主线程的线程有什么特别之处,还是仅仅是这是VS执行初始化调试的第一个线程?
它实际上是用于创建处理Windows消息泵的SynchronizationContext的线程.此线程将(或应该)始终标记为STA线程(请参阅Thread.ApartmentState),并使适当的同步上下文和消息泵运行.该Application.Run方法在普通Windows窗体应用程序的主线程中设置它.
| 归档时间: |
|
| 查看次数: |
574 次 |
| 最近记录: |