C#异步处理Task的简单使用

一般编程中,程序会从上往下同步执行,但有些时候处理一些前后没有关系的逻辑时,这样同步执行则会浪费时间,则需要用异步执行效果更好,此处整理了关于Task异步处理自己总结的小方法

这个方法中需要处理的问题是:调用多个函数,因每个函数处理时间比较长,依次等待需要花费很长时间,所以需要他们同时执行

处理方案:首先需要把这些函数放进Task,但因为函数名不同,需要把每个函数写进去看起来很繁杂,因为我的每个函数所用的参数是统一的,所以可以将所有函数所执行的内容合并到一个函数中,然后循环调用这个函数,传分类标识参数,如在task中写个循环,调用函数,函数中加一个int类型的标识参数,在需要被调用的函数里进行标识判断,进行不同步骤处理,这是一个方案,也或者不合并将每个函数的名字命名后面添加数字后缀,task循环中拼接名字调用不同方法,当然,这个方案仅限于需要调用的函数都是统一参数或者无参数的情况,参数不统一还是需要手动将每个函数写在task中

代码如下:当需要所有任务执行完再进行下一步处理的时候,task.Wait();必写

  public static void GetMessageListNew(string userid)
  {
      try
      {
            //将所需要执行的方法写入
            Task task = new Task(() =>
            {
                 for (int i = 1; i <= 13; i++)
                 {
                     GetMessageList1(userid, i);
                 }
            });
            //开始执行,task中所有的方法将执行异步,同时进行处理
            task.Start();
            //当task中任务全部处理完成时则会走到这个步骤,如果在工作中需要执行完所有任务才可以进行下一步,这一个必写
            task.Wait();
       }
       catch (Exception)
       {
       }
  }

//被调用的函数
 public static void GetMessageList1(string userid, int type)
 {
     //根据不同标识去做相应处理
     if(type==1)
     {
     }
     else if(type==2)
     {
     }
 }
原文地址:https://www.cnblogs.com/zyg316/p/14503935.html