请问各位winform同行,如何很好的理解.net自带的各个控件的Invoke()方法,msdn上说:在拥有此控件的基础窗口句柄的线程上执行委托。但是如何理解这句话,我在做一项目中需要在一个线程中更新主界面的一些控件,我也使用了invoke()方法,但说实话,我还是不是很理解,是不是就是在一个线程中要更新一些控件就要在线程中使用要更新控件的Invoke方法才能更新此控件。
调试欢乐多
以前有个说法,是Windows程序就不要用多线程
这是因为在非UI线程内操作窗体时可能会出现显示不正常的问题Control.Invoke提供了一个解决方案,他需要一个delegate参数,你可以理解为一个或多个方法本身;执行此方法后,窗口过程会在一个合适的时候执行传递过去的方法(delegate所纪录的方法) —— 在主UI线程内简单的讲,在非主线程内做更新窗口的操作,必须使用Control.Invoke
通过多线程为基于 .NET 的应用程序实现响应迅速的用户
http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/misMultithreading.mspx
你看了这个以后应该问题不大了.