详解C#中task应用-创新互联

小编这次要给大家分享的是详解C#中task应用,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

创新互联专注于黑河企业网站建设,成都响应式网站建设公司,成都商城网站开发。黑河网站建设公司,为黑河等地区提供建站服务。全流程定制制作,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

Task的应用

Task的MSDN的描述如下:

【Task类的表示单个操作不会返回一个值,通常以异步方式执行。

Task对象是一种的中心思想基于任务的异步模式首次引入.NETFramework 4 中。

因为由执行工作Task对象通常以异步方式执行线程池线程上而不是以同步方式在主应用程序线程中,可以使用Status属性,并将IsCanceled, IsCompleted,和IsFaulted属性,以确定任务的状态。

大多数情况下,lambda 表达式用于指定该任务所执行的工作量。

对于返回值的操作,您使用Task类。】

我对于Task的理解是这样的,Task是FrameWork4引进的新功能,他和ConCurrent命名空间一起被引进,用来替代Thread的使用。

根据我的使用,个人觉得,他确实比Thead的功能要丰富一些。

下面我们一起看一个最简单的例子:

using System;
using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace TaskConsole
{  class Program
  {    static void Main(string[] args)
    {      //当前线程标识      Console.WriteLine(Thread.CurrentThread.GetHashCode());
      Task task = new Task(run);
      Console.WriteLine("任务标识:" + task.GetHashCode() + ",状态:" + task.Status);//状态       task.Start();
      Console.WriteLine("任务标识:" + task.GetHashCode() + ",状态:" + task.Status);//状态      //任务完成后执行新任务
      Action ation = new Action(taskStart);
      task.ContinueWith(ation);

      Console.Read();
    }    public static void taskStart(Task task)
    {
      task = new Task(run);
      task.Start();      //如果注释上面两句话,则任务标识为 task.ContinueWith(ation)中task的任务
      Console.WriteLine("任务标识:" + task.GetHashCode() + ",状态:" + task.Status + ",当前线程:" + Thread.CurrentThread.GetHashCode());//状态       
    }    public static void run()
    { 
      Console.WriteLine("this is run");
    }
  }
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页标题:详解C#中task应用-创新互联
标题来源:http://pwwzsj.com/article/jihdg.html