C#中为什么不能让子线程休眠,也就是子线程不能使用Sleep

代码如下:

class Program
    {

      public static void subThreadFunc()
        { 
            int i = 1;
            do {
                i = i + 2;
                Console.WriteLine("子线程正在进行。。。{0}", i);
                Thread.Sleep(1000);
            }
            while (1 == 1);
        }

        [Obsolete]
        public static void 线程阻塞演示()
        {
            Console.WriteLine("子线程启动,停止、终止、阻塞综合演示:");
            Thread threadS = new Thread(new ThreadStart(Program.subThreadFunc));
            Console.WriteLine("子线程启动。。。");
            threadS.Start();
            Console.WriteLine("子线程状态:{0}", threadS.ThreadState);
            Thread.Sleep(10000);
            Console.WriteLine("主线程休眠10秒");
            //threadS.Sleep(5000);//这里想让子线程休眠5秒再执行,但是不能用sleep
            Console.WriteLine();
            Console.WriteLine("子线程状态:{0}", threadS.ThreadState);
            Console.WriteLine("子线程终止。。。");
            Console.WriteLine("Program.subThreadFunc被终止。");
            try
            {
                Console.WriteLine("尝试启动Program.subThreadFunc线程");
                threadS.Start();
                Console.WriteLine("尝试启动Program.subThreadFunc线程失败");

            }
            catch (Exception)
            {

                Console.WriteLine("Program.subThreadFunc已经被终止不能被重新启动。");
                Console.ReadLine();
                return;
            }

        }

        static void Main(string[] args)
        {
             Program.线程阻塞演示();
        }
}

这里 我想让子线程休眠5秒再继续跑,但是threadS中调不出Sleep,这是为什么呢,为何就不能让子线程休眠。请高手指点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值