/// <summary> /// 异步工作方法 /// </summary> /// <typeparam name="T">异步工作结果数据泛型</typeparam> /// <param name="workerMethod">异步工作方法</param> /// <param name="workerMethodTimeoutSeconds">异步工作方法超时时长,0为永不超时</param> /// <param name="workerProgressChangedCallback">异步工作方法进度回调函数</param> /// <param name="workerMethodCompletedCallback">异步工作方法已完成回调函数</param> /// <returns>异步工作器句柄</returns> public static AsyncWorkerHandle <T> DoWork <T>( DoWorkEventHandler workerMethod, int workerMethodTimeoutSeconds, ProgressChangedEventHandler workerProgressChangedCallback, EventHandler <AsyncWorkerCallbackEventArgs <T> > workerMethodCompletedCallback) { AsyncWorker <T> worker = new AsyncWorker <T>(workerMethod, workerProgressChangedCallback, workerMethodCompletedCallback); return(worker.StartWork(workerMethodTimeoutSeconds)); }
/// <summary> /// Releases unmanaged and - optionally - managed resources /// </summary> /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> protected virtual void Dispose(bool disposing) { if (disposing) { if (this.worker != null) { this.worker.Dispose(); this.worker = null; } } }