黑马程序员技术交流社区
标题:
c#的多线程
[打印本页]
作者:
sunrise2
时间:
2014-7-18 13:48
标题:
c#的多线程
多线程的使用方法:
Thread t = new Thread(new ThreadStart (StartMethod));
t.Start();
private void StartMethod()
{
Thread.Sleep(5000);
MessageBox.Show("c");
}
复制代码
多线程的功能和异步调用一样,都是为了不等调用的函数运行完,就继续剩下的语句。
ParameterizedThreadStart是面向带参数的方法,参数的类型是object。
StartMethod()是不带参数的方法。
StartMethod(object i)就是带参数的方法
t.IsBackground = true;
复制代码
只要在主程序的最后加上 t.Join();就可以了。
为什么要使用this.invoke呢,感觉它跟直接调用函数没什么差别,但是如果要在支线程的函数中给控件赋值,代码就会报错,这个时候this.invoke,this.begininvoke都就可以拿来用了。
t.IsBackground = true;
复制代码
public void DoWork()
{
MyInvoke mi = new MyInvoke(Updatetxt);
this.BeginInvoke(mi, new Object[] {"我是文本框"});
}
public void Updatetxt(string param)
{
textBox1.Text = param;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2