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); } }
public SmartTask(TaskControl taskControl) { control = taskControl; TaskContent = new T(); }
public SmartTask(T task, TaskControl taskControl) { control = taskControl; TaskContent = task; }