MultiThread

using System;
using System.Threading;

namespace MultiThread
{
    public class Program
    {
        static ManualResetEvent mre = new ManualResetEvent(false);
        static void Main77()
        {
            Thread t = new Thread(new ThreadStart(Hello));
            t.Start();
            while (true)
            {
                char a = Console.ReadKey().KeyChar;
                if (a.ToString().ToUpper() == "X")
                {
                    mre.Set();
                    t.Abort();
                    t.Join();
                    Console.WriteLine(t.Name + " stopped");
                    break;
                }
            }
        }

        static void Hello()
        {
            while (true)
            {
                if (mre.WaitOne(10000))//WaitOne 一直阻塞,WaitOne(int millisecondsTimeout) 是阻塞一定的时间,如果在规定的时间里没有收到信息,则往下执行
                {
                    break;
                }
                Console.WriteLine("Hello");
            }
            //Console.WriteLine("Hello");
        }
    }
}

posted on 2011-11-15 22:33  breakpoint  阅读(171)  评论(0编辑  收藏  举报

导航