黑马程序员技术交流社区

标题: c#的多线程 [打印本页]

作者: sunrise2    时间: 2014-7-18 13:48
标题: c#的多线程
多线程的使用方法:
  1. Thread t = new Thread(new ThreadStart (StartMethod));
  2. t.Start();
  3.   
  4.   private void StartMethod()
  5.   {
  6.       Thread.Sleep(5000);
  7.             MessageBox.Show("c");
  8.   }
复制代码

        多线程的功能和异步调用一样,都是为了不等调用的函数运行完,就继续剩下的语句。

           ParameterizedThreadStart是面向带参数的方法,参数的类型是object。
        StartMethod()是不带参数的方法。
        StartMethod(object i)就是带参数的方法

  1. t.IsBackground = true;
复制代码

       只要在主程序的最后加上 t.Join();就可以了。

      为什么要使用this.invoke呢,感觉它跟直接调用函数没什么差别,但是如果要在支线程的函数中给控件赋值,代码就会报错,这个时候this.invoke,this.begininvoke都就可以拿来用了。

  1. t.IsBackground = true;
复制代码
  1. public void DoWork()
  2. {
  3. MyInvoke mi = new MyInvoke(Updatetxt);
  4. this.BeginInvoke(mi, new Object[] {"我是文本框"});
  5. }
  6. public void Updatetxt(string param)
  7. {
  8. textBox1.Text = param;
  9. }
复制代码






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2