美文网首页
C#多线程控制

C#多线程控制

作者: 五维思考 | 来源:发表于2022-05-15 15:05 被阅读0次

    以下代码演示了主线程如何控制子线程的运行,希望对学习C#多线程编程的小伙伴有所帮助!

      CancellationTokenSource tokenSource = new CancellationTokenSource();
      ManualResetEvent manualResetEvent = new ManualResetEvent(true);
      Console.WriteLine("主线程指令:启动");
      var myTask = Task.Run(async () =>
      {
          int value = 0;
          while (true)
          {
              manualResetEvent.WaitOne();
              value++;
              Console.WriteLine($"\t子线程运行了{value*100}毫秒");
              await Task.Delay(100);
          }
      }, tokenSource.Token);
      Thread.Sleep(500);
      Console.WriteLine("主线程指令:暂停");
      manualResetEvent.Reset();
      Thread.Sleep(500);
      Console.WriteLine("主线程指令:继续");
      manualResetEvent.Set();
      Thread.Sleep(500);
      Console.WriteLine("主线程指令:停止");
      tokenSource.Cancel();
      manualResetEvent.Close();
      Console.Read();
    

    运行结果

    主线程指令:启动
            子线程运行了100毫秒
            子线程运行了200毫秒
            子线程运行了300毫秒
            子线程运行了400毫秒
            子线程运行了500毫秒
    主线程指令:暂停
    主线程指令:继续
            子线程运行了600毫秒
            子线程运行了700毫秒
            子线程运行了800毫秒
            子线程运行了900毫秒
            子线程运行了1000毫秒
    主线程指令:停止
    

    相关文章

      网友评论

          本文标题:C#多线程控制

          本文链接:https://www.haomeiwen.com/subject/iiqburtx.html