A pattern to pause/resume an async task?

前端 未结 5 1393
耶瑟儿~
耶瑟儿~ 2020-11-28 09:12

I have a mostly IO-bound continuous task (a background spellchecker talking to a spellcheck server). Sometimes, this task needs to be put on hold and resumed later, dependin

5条回答
  •  感动是毒
    2020-11-28 09:45

    it is works for me

            using System;
    
            using System.Threading;
            using System.Threading.Tasks;
    
            namespace TaskTest2
            {
    
                class Program
                {
                    static ManualResetEvent mre = new ManualResetEvent(false);
                    static void Main(string[] args)
                    {
    
                       mre.Set();
                       Task.Factory.StartNew(() =>
                        {
                            while (true)
                            {
                                Console.WriteLine("________________");
                                mre.WaitOne();
                            }
    
                        } );
    
                        Thread.Sleep(10000);
                        mre.Reset();
                        Console.WriteLine("Task Paused");
                        Thread.Sleep(10000);
                        Console.WriteLine("Task Will Resume After 1 Second");
                        Thread.Sleep(1000);
                        mre.Set();
    
                        Thread.Sleep(10000);
                        mre.Reset();
                        Console.WriteLine("Task Paused");
    
    
                        Console.Read();
                    }
                }
            }
    

提交回复
热议问题