一般编程中,程序会从上往下同步执行,但有些时候处理一些前后没有关系的逻辑时,这样同步执行则会浪费时间,则需要用异步执行效果更好,此处整理了关于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) { } }
|
|