子线程使用委托与UI线程的通信
作者:admin 发布于:2012-3-29 14:23 Thursday 分类:.NET
29Mar
由于项目中存在这样的载入的画面:在界面上有显示载入信息的Label控件和进度条,如果采用单线程则在载入数据的时候UI界面会被锁死,造成假死的感觉。为了给一个更友好的界面,因此有必要引入多线程技术,使得软件更加“人性化”。
但随后在子线程中访问界面上的控件的时候会出现异常,不能操作主线程所控制的UI界面。看来这得用到委托技术了!
首先我们定义委托:
public delegate void loadin(string data, int progress);
定义委托用delegate关键字,随后跟着一个返回值(这里void就是没有返回值了),loadin是委托名,后面带着两个参数,分别代表显示载入的数据和载入进度条的数值!
在窗体的Load事件里面我们定义一个子线程,用于在后台载入数据并显示载入情况。
定义线程:
ThreadStart ts = newThreadStart(Downin);...
标签: 委托