none
TaskPoolScheduler throws Win32Exception (0x80004005): Access is denied (XP, Rx2)

    Question

  • Hi  guys,

    I'm using Reactive Framework 2 but it suddenly throws throws Win32Exception from TaskPoolScheduler on an XP machine, but it looks not reproducible. The stacktrace is quite limited, any idea?

    2013-07-02 15:19:38,209 [31] ERROR MyUnhandledExceptionHandler : AppDomainUnhandledException
    System.ComponentModel.Win32Exception (0x80004005): Access is denied
      at System.Reactive.Concurrency.TaskPoolScheduler.<>c_DisplayClass2`1.<>cDisplayClass4.<Schedule>b_1()
      at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      at System.Threading.ThreadHelper.ThreadStart()

    It should be from Rx v1, since the callstack is so "empty":

    // decompiled by ILSpy
    public IDisposable Schedule<TState>(TState state, Func<IScheduler, TState, IDisposable> action)
    {
        if (action == null)
        {
            throw new ArgumentNullException("action");
        }
        SerialDisposable d = new SerialDisposable();
        CancellationDisposable cancellationDisposable = new CancellationDisposable();
        d.Disposable = cancellationDisposable;
        this.taskFactory.StartNew(delegate
        {
            try
            {
                d.Disposable = action(this, state);
            }
            catch (Exception ex)
            {
                Exception ex2;
                Exception ex = ex2;
                Thread thread = new Thread(delegate
                {
                    throw ex;
                });
                thread.Start();
                thread.Join();
            }
        }, cancellationDisposable.Token);
        return d;
    }
    Thanks

    Happy programming, happy life.
    http://blog.zhaojie.me/





    Wednesday, July 03, 2013 9:06 AM