override protected TaskControl DoFireTask(ISmartTask task)
 {
     if (task.Controller == null)
     {
         task.Controller = new TaskControl(true, null);
         ThreadPool.QueueUserWorkItem(new WaitCallback(task.Callback), null);
         return(null);
     }
     else
     {
         TaskControl          tc        = task.Controller;
         RegisteredWaitHandle regHandle = ThreadPool.RegisterWaitForSingleObject(tc.OnRunEvent, new WaitOrTimerCallback(task.Callback), null, tc.TimeoutInterval, tc.ExecuteOnlyOnce);
         tc.RegisteredWaitHandle = regHandle;
         return(tc);
     }
 }
Esempio n. 2
0
 public SmartTask(TaskControl taskControl)
 {
     control     = taskControl;
     TaskContent = new T();
 }
Esempio n. 3
0
 public SmartTask(T task, TaskControl taskControl)
 {
     control     = taskControl;
     TaskContent = task;
 }