解决方案 »

  1.   


    你先写出一个“在 sleep 中抛出异常”的语句试试看?!
      

  2.   

    什么情况sleep会抛异常?
    如果真抛出异常,就能捕获到异常
      

  3.   

    Sleep挂起的是哪个线程?当前线程吗?
      

  4.   

    1.首先,你举得例子是线程,不是进程
    2.类似int a=1;这种语句,可能会抛异常吗?
    同理,sleep怎么可能会抛异常
      

  5.   


    static void testAbort()
            {
                try
                {
                    Thread.Sleep(10000);
                }
                catch (System.Exception ex)
                {
                    Console.WriteLine("tAbsort receive abort message, thread name:{0}", Thread.CurrentThread.Name);
                    Console.WriteLine("enter catch tAbsort state:{0}", Thread.CurrentThread.ThreadState);
                }
                finally
                {
                    Console.WriteLine("enter finally tAbsort state:{0}", Thread.CurrentThread.ThreadState);
                }
            }        static void Main(string[] args)
            {
                try
                {
                    //TestThreadJoin();
                    //Thread.CurrentThread.Abort();
                    Thread tAbort = new Thread(new ThreadStart(testAbort));
                    tAbort.Name = "ttAbort";
                    //Thread.Sleep(3000);
                    tAbort.Start();
                    Thread.Sleep(1);
                    tAbort.Abort();
                    //Thread.Sleep(3000);
                    tAbort.Join();
                    Console.WriteLine("After finally, {0} thread state {1}", tAbort.Name, tAbort.ThreadState);
                    Console.ReadKey();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("enter Exception!" + ex.ToString());
                }
    }可能我没有说清楚,我把源码贴出来
      

  6.   

    你觉得呢
    你在方法a里执行sleep,想要阻塞住方法b,sleep里如果不传入方法b所在的线程句柄,编译器哪知道你到底想阻塞谁
    事实上,sleep也根本没给你提供这个参数