class A
{
   Thread1;
}
class B
{
   Thread2;
}
怎么在Thread1中挂起和继续Thread2?

解决方案 »

  1.   

    class A
    {
       private Thread ThreadA1;
       private Thread ThreadA2;
       private void test()
       {
          ThreadA1=new Thread(new ThreadStart(B.main));
          ThreadA2=new Thread(new ThreadStart(B.main));
          ThreadA1.start();
          ThreadA2.start();
       }
    }
    class B
    {
       private Thread ThreadB;
       public void main()
       {
         ThreadB=new Thread(new ThreadStart(test));
         ThreadB.start();
       }
       private void test()
       {
         //code 
       }
    }
    class C
    {
       private void StopThead()
       {
          怎么在这里挂起和继续ThreadA1,ThreadA2,ThreadB
       }
    }
      

  2.   

    用鎖。
    參看
    C#中使用Monitor类、Lock和Mutex类来同步多线程的执行 
    http://blog.csdn.net/tjvictor/archive/2007/01/20/1488290.aspx
      

  3.   

    to 问题是在不同的class中啊首先对方线程所在的类要提供相应的方法来暂停和继续本类所包含的线程;
    然后把此类的对象传递给第二个类中即可。ps:
    不要用Thread.Suspend以及Thread.Resume,线程的暂停和继续的方法参看如下文章的方法
    http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx
      

  4.   

    定义了线程步定义优先级的话,除非可以配合时间控制,要不然会很糟糕,几个线程都无法完成。配一个时间控制函数给你,用来测试某个函数或线程所需时间,可以通过控制时间来完成线程的依次执行或插叙执行设置优先级的话,可以在c#帮助里面自己找到相应的属性说明。using System;
    using System.Text;
    namespace Class_5
    {
    class Class1
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]

    static void Main(string[] args)
    {
    DateTime start = DateTime.Now;
    long total = 0;
                               //
    //此处执行函数或线程
                               //
    TimeSpan timeTaken = DateTime.Now - start;
    System.Console.WriteLine("millisecond = " + timeTaken.Milliseconds);
    System.Console.WriteLine("total = " + total);
    }
    }
    }