/// <summary> /// Schedules execution pending the completion of another task. This call uses overlapped /// I/O for scheduling. /// </summary> /// <param name="waitForTask">A task upon which this task is dependent. If null is given then /// this task is queued to the thread pool for immediate asynchronous execution.</param> /// <param name="timeoutMilliseconds">A timeout period for the wait. If the task does not start before the /// timeout period then a TimeoutException will be thrown when the IAsyncResult is read. The /// value of Timeout.Infinite may be used to wait forever.</param> public void ScheduledExecute(ParallelTask waitForTask, int timeoutMilliseconds) { if (waitForTask == null || waitForTask.IsCompleted) AsyncExecute(); else this.ScheduledExecute(waitForTask.WaitHandle, timeoutMilliseconds); }
/// <summary> /// Schedules execution pending the completion of another task. This call uses overlapped /// I/O for scheduling. /// </summary> /// <param name="waitForTask">A task upon which this task is dependent. If null is given then /// this task is queued to the thread pool for immediate asynchronous execution.</param> /// <param name="timeout">A timeout period for the wait. If the task does not start before the /// timeout period then a TimeoutException will be thrown when the IAsyncResult is read. The /// value of Timeout.Infinite may be used to wait forever.</param> public void ScheduledExecute(ParallelTask waitForTask, TimeSpan timeout) { if (waitForTask == null || waitForTask.IsCompleted) AsyncExecute(); else this.ScheduledExecute(waitForTask.WaitHandle, timeout); }