c# 多线程(task,thread)

1.task(委托)

            Task t = new Task(() =>
            {
                //do  something
                while (true)
                {
                }
            });
            t.ContinueWith((task) =>
            {
                try
                {
                    task.Wait();
                }
                catch (AggregateException ex)
                {
                    foreach (Exception item in ex.InnerExceptions)
                    {

                    }
                }
            },TaskContinuationOptions.OnlyOnFaulted);
            t.Start();

2.Thread  (可不加阻滞状态)

//WaitHandle(EventWaitHandle:AutoResetEvent,ManualResetEvent;Semaphore;Mutex)
        //给出阻滞状态。给出信号后自己回到阻滞
        private AutoResetEvent autoResetEvent = new AutoResetEvent(false);
        public void Test1()
        {
            Thread TH = new Thread(()=> {
                //DO  SOMETHING
                bool re=autoResetEvent.WaitOne();
                //CONTINUE DOING
            });

        }
        public void Test2()
        {
            //给等待的线程一个信号
            autoResetEvent.Set();
        }
        #endregion

猜你喜欢

转载自blog.csdn.net/miluli1/article/details/86004096