Exemplo n.º 1
0
 /// <summary> 开启新线程 </summary>
 public void NewTaskStart(decimal time, tg_task newtask)
 {
     try
     {
         if (time < 0)
         {
             return;
         }
         if (Variable.RoleTask.ContainsKey(newtask.id))
         {
             return;
         }
         Variable.RoleTask.TryAdd(newtask.id, true);
         var token = new CancellationTokenSource();
         var task  = Task.Factory.StartNew(() => SpinWait.SpinUntil(() => false, (int)time), token.Token);
         task.ContinueWith(m =>
         {
             if (Variable.RoleTask.ContainsKey(newtask.id))
             {
                 var a = true;
                 Variable.RoleTask.TryRemove(newtask.id, out a);
             }
             var taskcheck = tg_task.FindByid(newtask.id); //验证该任务是否还存在,如果武将已经被放逐,任务则不存在
             if (taskcheck != null)
             {
                 PUSH_TASK_END.GetInstance().CommandStart(newtask);
             }
             token.Cancel();
         }, token.Token);
     }
     catch (Exception ex)
     {
         XTrace.WriteException(ex);
     }
 }
Exemplo n.º 2
0
 /// <summary>PUSH_TASK_END 单体模式</summary>
 public static PUSH_TASK_END GetInstance()
 {
     return(_objInstance ?? (_objInstance = new PUSH_TASK_END()));
 }