Example #1
0
        protected virtual void OnWorkerException(ResourceExceptionEventArgs e)
        {
            ResourceExceptionEventHandler handler;

            lock (eventLock)
            {
                handler = workerException;
            }
            if (handler != null)
                handler(this, e);
        }
Example #2
0
        public void HandleResourceException(ResourceExceptionEventArgs e)
        {
            lock (completed)
            {
                Pause();
                internalException = e.Exception;

                // Tell the world.
                OnWorkerException(e);

                // Wakeup any threads in WaitAll and let them throw the exception.
                Monitor.PulseAll(completed);
            }

        }
Example #3
0
 [Test] public void WorkThreadException()
 {
     wteArgs  = null;
     worklist = new WorkQueue();
     worklist.WorkerException   += new ResourceExceptionEventHandler(worklist_WorkThreadException);
     worklist.CompletedWorkItem += new WorkItemEventHandler(te_CompletedWorkItem);
     worklist.Add(new SimpleWork(1));
     try
     {
         worklist.WaitAll();
     }
     catch (Exception)
     {
     }
     AssertNotNull("WorkThreadException event", wteArgs);
     AssertNotNull(wteArgs.Exception);
     AssertEquals("testing exceptions on another thread.", wteArgs.Exception.Message);
 }
Example #4
0
        [Test] public void WorkThreadException()
        {
            wteArgs = null;
            IWorkItem work = new FailedWork();

            work.State = WorkItemState.Scheduled;

            WorkThreadPool.Default.ThreadException += new ResourceExceptionEventHandler(OnWorkThreadException);
            WorkThreadPool.Default.BeginWork(work);

            while (wteArgs == null)
            {
                Thread.Sleep(TimeSpan.FromMilliseconds(50));
            }

            AssertNotNull("WorkThreadException event", wteArgs);
            AssertNotNull(wteArgs.Exception);
            AssertEquals("WorkThreadException testing.", wteArgs.Exception.Message);
        }
Example #5
0
 private void m_work_WorkerException(object sender, ResourceExceptionEventArgs e)
 {
     Application.OnThreadException(e.Exception);
 }
Example #6
0
 private void worklist_WorkThreadException(object sender, ResourceExceptionEventArgs e)
 {
     wteArgs = e;
 }
Example #7
0
 void work_WorkerException(object sender, ResourceExceptionEventArgs e)
 {
     LogException(e.Exception.GetType().GetProperties(), e.Exception);
 }