private void ReportCompletion(IAsyncResult asyncResult)
        {
            System.Runtime.Remoting.Messaging.AsyncResult ar = asyncResult as System.Runtime.Remoting.Messaging.AsyncResult;
            DoWorkEventHandler del        = ar.AsyncDelegate as DoWorkEventHandler;
            DoWorkEventArgsBw  doWorkArgs = (DoWorkEventArgsBw)ar.AsyncState;
            object             result     = null;
            Exception          error      = null;

            try {
                del.EndInvoke(asyncResult);
                result = doWorkArgs.Result;
            } catch (Exception exception) {
                error = exception;
            }

            RunWorkerCompletedEventArgsBw completedArgs = new RunWorkerCompletedEventArgsBw(result, error, doWorkArgs.Cancel);

            OnRunWorkerCompleted(completedArgs);
        }
Beispiel #2
0
		protected virtual void OnRunWorkerCompleted( RunWorkerCompletedEventArgsBw completedArgs ) {
			ProcessDelegate( RunWorkerCompleted, this, completedArgs );
		}
 protected virtual void OnRunWorkerCompleted(RunWorkerCompletedEventArgsBw completedArgs)
 {
     ProcessDelegate(RunWorkerCompleted, this, completedArgs);
 }
Beispiel #4
0
		private void ReportCompletion( IAsyncResult asyncResult ) {
			System.Runtime.Remoting.Messaging.AsyncResult ar = asyncResult as System.Runtime.Remoting.Messaging.AsyncResult;
			DoWorkEventHandler del = ar.AsyncDelegate as DoWorkEventHandler;
			DoWorkEventArgsBw doWorkArgs = (DoWorkEventArgsBw)ar.AsyncState;
			object result = null;
			Exception error = null;

			try {
				del.EndInvoke( asyncResult );
				result = doWorkArgs.Result;
			} catch( Exception exception ) {
				error = exception;
			}

			RunWorkerCompletedEventArgsBw completedArgs = new RunWorkerCompletedEventArgsBw( result, error, doWorkArgs.Cancel );
			OnRunWorkerCompleted( completedArgs );
		}