public void go()
{
ThreadStart ts= new ThreadStart(TD);
        if (ts != null)
        {
            Thread td = new Thread(ts);
            td.Start();
        }}
public void TD()
{
//....
}这是一个局部的线程,我想在外部点击"暂停"按钮时,这个线程暂停
按"重启"线程重启,

解决方案 »

  1.   

    线程名.Suspend();挂起一个线程
    线程名.Resume();继续刚才被挂起的线程
      

  2.   


    td.Suspend();//挂起
    td.Resume();//继续进行
    td.Abort();//终止
    看你自己想要什么操作了,暂停就用挂起了,如果要停止就用ABORT,然后再START
      

  3.   

    1.线程暂停的Suspend()不推荐使用,要暂停就直接退出,然后重新启动,请查看msdn
    2.局部线程可以在实现后放到容器中,如List或Dictionary,根据线程标识就可以控制
      

  4.   

    td.Suspend();//挂起
    td.Resume();//继续进行
    td.Abort();//终止
      

  5.   

    做个全局bool变量当标记。
    或者像上面说的
      

  6.   

    可以转换一个思维方式,在开始方法的时候让线程abort,然后重新执行线程。
      

  7.   

    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Text;  
    using System.Threading;  
     
    namespace MyThread  
    {  
    class Program  
    {  
    private static int newTask(int ms)  
    {  
    Console.WriteLine("任务开始");  
    Thread.Sleep(ms);  
    Random random = new Random();  
    int n = random.Next(10000);  
    Console.WriteLine("任务完成");  
    return n;  
    }  
     
    private delegate int NewTaskDelegate(int ms);  
       
     
    static void Main(string[] args)  
    {  
    NewTaskDelegate task = newTask;  
    IAsyncResult asyncResult = task.BeginInvoke(2000, null, null);  
     
    // EndInvoke方法将被阻塞2秒  
    int result = task.EndInvoke(asyncResult);     
    Console.WriteLine(result);