处理WinForm多线程程序时的陷阱[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 leonlux 的 blog

与所有的ui开发平台一样,.net下线程开发图形界面同样要遵循一个基本原则:就是对ui对象的操作一定要在产生该ui对象的线程里进行(该线程称作ui线程),因为大部分ui对象都不是线程安全的。

.net中,把调用调用放在ui线程里执行是通过form类及其子类的invoke()方法实现的(具体的过程请参考其他资料),可以这样做是因为form对象保存了创建它的线程的信息,而且form类有一个bool类型的属性invokerequired,可以通过它查看当前线程是否为创建该form对象的线程(ui线程)——如果为true,则表示当前线程不是ui线程,反之则是。下面提供一个例子:

using system.threading;

using system.windows.forms;

 

namespace csharptest

{

     public class testform : form

     {

         private form form1;

         private form form2;

 

         public static void main()

         {

本文关键:处理WinForm多线程程序时的陷阱
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top