zoukankan      html  css  js  c++  java
  • C# Task任务教程

    Task

    Task的背后的实现也是使用了线程池线程,但它的性能优于ThreadPoll,因为它使用的不是线程池的全局队列,而是使用的本地队列,使线程之间的资源竞争减少。同时Task提供了丰富的API来管理线程、控制。但是相对前面的两种耗内存,Task依赖于CPU对于多核的CPU性能远超前两者,单核的CPU三者的性能没什么差别。

    创建一个task也有3种方式来操作,Task.Factory.StartNew()Task run()new Task(), 前面2种是一样的,不需要用start来开始执行,后面一种需要start来执行的。

     Task t = Task.Run(() =>
     {
      //下面 的代码线性运行
        this.Invoke((EventHandler)(delegate
        {
        }  
    }
    Task t = Task.Factory.StartNew( () => {
                                      // Just loop.
                                      int ctr = 0;
                                      for (ctr = 0; ctr <= 1000000; ctr++)
                                      {}
                                      Console.WriteLine("Finished {0} loop iterations",
                                                        ctr);
                                   } );
    var task1 = new Task(() =>
             {
                Console.WriteLine("Task 1 Begin");
                System.Threading.Thread.Sleep(2000);
                Console.WriteLine("Task 1 Finish");
             });
     task1.Start();

    取消任务的话,需要一个CancellationTokenSourcetoken来取消即可

    var tokenSource = new CancellationTokenSource();
    var token = tokenSource.Token;
    var task = Task.Factory.StartNew(() =>
             {
                for (var i = 0; i < 1000; i++)
                {
                   System.Threading.Thread.Sleep(1000);
                   if (token.IsCancellationRequested)
                   {
                      Console.WriteLine("Abort mission success!");
                      return;
                   }
                }
             }, token);
    tokenSource.Cancel();
  • 相关阅读:
    lua继承3
    C 调试
    lua继承
    hdoj_1102Constructing Roads(最小生成树)&& poj_2485Highways
    网络摄像头监控
    hdoj_3336Count the string(KMP)
    逻辑思维训练500题(带答案)
    AC自动机算法
    poj_3080Blue Jeans && poj_3450Corporate Identity(KMP)
    hdoj_1162Eddy's picture(最小生成树)
  • 原文地址:https://www.cnblogs.com/bingxing/p/15497006.html
Copyright © 2011-2022 走看看