ibcadmin 发表于 2012-12-5 16:18:45

C#线程实例代码学习

using System;
using System.Threading;
namespace TaskDemo {
   public class MyTask {
      public Thread m_thread;
      string m_name;
      public MyTask(string name) {
      m_name = name;
      m_thread = new Thread(new ThreadStart(Worker));    // 线程创建,作为一个类的成员存在
   }
      private void Worker() {
      Console.WriteLine("Hello, ");
         Thread.Sleep(1500);
      Console.WriteLine(m_name);
      }
   }      
class TaskDemo1 {
         static void Main(string [] args){               
         MyTask task1 = new MyTask("Bill");
         MyTask task2 = new MyTask("Steve");
         task1.m_thread.Start();                                                 //线程启动
         task2.m_thread.Start();
         }
}
}





关闭窗口结束线程

private   void   Form1_Closing(object   sender,   System.ComponentModel.CancelEventArgs   e)
{
          if(my_thread.ThreadState.ToString()   =="Suspended")      //先检查线程的状态
          {
my_thread.Resume();                            // 唤起
my_thread.Abort();                               //杀死线程
my_thread.Join();                                  //这里是保证彻底的杀死线程吧
          }
          else
      {
my_thread.Abort();
my_thread.Join();   
      }
}



上面用到了一个叫做join和函数,它的作用是什么?

t.Join();
   可以这么理解,把线程t放到当前位置来执行,只有t结束以后才会执行t.Join()以后的代码

指尖的青春 发表于 2012-12-23 23:08:11

回复一下吧











static/image/common/sigline.gif
在远方的城市里,是不是也有那么一个人和我一样,在这寂寥的夜里,伫立在窗前,凝望着远方。。。

chao2332601 发表于 2013-6-16 02:07:08

谢谢分享!!!

chao2332601 发表于 2013-6-16 04:56:12

谢谢分享!!!
页: [1]
查看完整版本: C#线程实例代码学习