/// <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;
         }
     }
 }