A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sunrise2 高级黑马   /  2014-7-18 13:48  /  793 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多线程的使用方法:
  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. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马