当前位置:编程学习 > C#/ASP.NET >>

线程的暂停与重新启动

form内启动一个线程
Thread thread = new Thread(new ThreadStart(Work));
thread.IsBackground = true;
thread.Start();
根据需要如何在Work函数内暂停和重新启动此线程 --------------------编程问答-------------------- 在Work函数内暂停和重新启动:

event.WaitOne(); --------------------编程问答-------------------- 给你贴一段代码,直接写的测试代码。
private volatile bool _Stop  //可以看做是全局变量
private void  btn2_Click(object sender, EventArgs e)  //按钮开线程
{
   Thread td = new Thread(new ThreasStart(Test))
   td.Start();
}
private void Test()  //方法
{
  while(!=Stop)
   {
      Trace.WriteLine("随便写两个字-- 打印的")
   }
}

private void  btn3_Click(object sender, EventArgs e)//线程暂停按钮
{
   _Stop = true;
} --------------------编程问答-------------------- Thread.Sleep、Join
用Monitor, Mutex, WaitHandler、Semaphore来更精确地控制同步 --------------------编程问答-------------------- 在Work内只暂停不同步的话用Thread.Sleep();就可以了 --------------------编程问答-------------------- 我是按按钮后启动work函数,请问如何暂停线程后再按按钮重启动线程 --------------------编程问答--------------------
引用 2 楼 wsh_mar 的回复:
给你贴一段代码,直接写的测试代码。
private volatile bool _Stop  //可以看做是全局变量
private void  btn2_Click(object sender, EventArgs e)  //按钮开线程
{
   Thread td = new Thread(new ThreasStart(Test))
   td.Start();
}
private void Test()  //方法
{
  while(!=Stop)
   {
      Trace.WriteLine("随便写两个字-- 打印的")
   }
}

private void  btn3_Click(object sender, EventArgs e)//线程暂停按钮
{
   _Stop = true;
}

可以换这个思路,不一定非要启动、停止线程,不需要工作的时候让线程空跑就行。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,