protected virtual async void OnDoWork(Object argument)
		{
			if (!IsBusy)
			{
				bool DoWorkExists = true;
				e = new DoWorkEventArgsHelper(argument);
				await Task.Run(() =>
				{
					if (DoWork != null)
					{
						IsBusy = true;
						DoWork(this, e);
					}
					else
					{
						DoWorkExists = false;
					}
				});
				IsBusy = false;
				if (DoWorkExists)
				{
					e2 = new RunWorkerCompletedEventArgsHelper(true, null, false);
                }
                else
				{
					e2 = new RunWorkerCompletedEventArgsHelper(false, null, true);
				}
				if(RunWorkerCompleted != null) 
				{
					RunWorkerCompleted(this, e2);
				}

			}
			else
			{
				var exception = new InvalidOperationException();
				e2 = new RunWorkerCompletedEventArgsHelper(false, exception, true);
			}
		}
Beispiel #2
0
        protected virtual async void OnDoWork(Object argument)
        {
            if (!IsBusy)
            {
                bool DoWorkExists = true;
                e = new DoWorkEventArgsHelper(argument);
                await Task.Run(() =>
                {
                    if (DoWork != null)
                    {
                        IsBusy = true;
                        DoWork(this, e);
                    }
                    else
                    {
                        DoWorkExists = false;
                    }
                });

                IsBusy = false;
                if (DoWorkExists)
                {
                    e2 = new RunWorkerCompletedEventArgsHelper(true, null, false);
                }
                else
                {
                    e2 = new RunWorkerCompletedEventArgsHelper(false, null, true);
                }
                if (RunWorkerCompleted != null)
                {
                    RunWorkerCompleted(this, e2);
                }
            }
            else
            {
                var exception = new InvalidOperationException();
                e2 = new RunWorkerCompletedEventArgsHelper(false, exception, true);
            }
        }