这两天在项目上需要使用多线程技术,研究了半天,碰到了一些问题,现在简要总结下。
线程的使用其实很简单,和JAVA里面差不多,但是还是有很多特别的地方,在C#中的线程,如果要对非线程创建的控件进行操作的话,就会有异常,所以需要使用委托来对其他控件进行操作。
线程使用的步骤:
1、编写产生线程所要执行的方法。
2、引用System.Threading命名空间。
3、实例化Thread类,并传入一个指向线程所要运行的方法的委托。
4、调用Thread实例的Start方法。
程序举例如下:
//主线程
{
...
Thread thread = new Thread(new ThreadStart(Safety)) ;
...
}
//如果要对控件进行操作,需要使用委托
//委托定义
delegate void DGSafety(args1,args2,...) ; //委托声明
DGSafety dgSafety = null ;//委托对象声明
//操作函数
void Do(args1,args2,...) //操作控件的函数
{
...
}
//委托对象的实例化一般情况下是在窗体Load的时候就实例化
Form_Load(...)
{
dgSafety = new DGSafety(Do) ;
}
//线程中的函数
Safety(...)
{
......
//需要操作控件的时候
this.Invoke(dgSafety,args1,args2,...) ;
......
}
以上就是大致的线程使用过程,这里的重点就在委托上。