C# Task的应用

Task的用法
  2.1、创建任务
  无返回值的方式
  方式1:
  var t1 = new Task(() => TaskMethod("Task 1"));
  t1.Start();
  Task.WaitAll(t1);//等待所有任务结束
  注:
  任务的状态:
  Start之前为:Created
  Start之后为:WaitingToRun

  方式2:
  Task.Run(() => TaskMethod("Task 2"));

  方式3:
  Task.Factory.StartNew(() => TaskMethod("Task 3")); 直接异步的方法
  或者
  var t3=Task.Factory.StartNew(() => TaskMethod("Task 3"));
  Task.WaitAll(t3);//等待所有任务结束
  注:
  任务的状态:
  Start之前为:Running
  Start之后为:Running

实际应用:

public ActionResult FinSave(EquipMaster model)
{
new Task(StartCode, model.EquipID).Start();
//var t1 = new Task(() => StartCode(model.EquipID));
//t1.Start();
return Json(rx);
}

private static void StartCode(object EquipID)
{
try
{
BaseManager bm = new BaseManager();
var sql = @"exec sp_ExportFAJDENew '" + EquipID + "'";
var rx = bm.ExecuteCommand(sql);
JeffSoft.Logger.Error(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") +"sp_ExportFAJDENew sucess:" + EquipID );
}
catch (Exception e)
{
JeffSoft.Logger.Error(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "sp_ExportFAJDENew sucess:" + EquipID, e);
}
}

原文地址:https://www.cnblogs.com/Depingblogs/p/15061936.html