// the worker method to actually run the callback
        // The signature is such that it can be used as a 'ContextCallback'
        private static void ExecutionContextCallback(object obj)
        {
            CancellationCallbackInfo callbackInfo = obj as CancellationCallbackInfo;

            Contract.Assert(callbackInfo != null);
            callbackInfo.Callback(callbackInfo.StateForCallback);
        }
        private static void ExecutionContextCallback(object obj)
        {
            CancellationCallbackInfo cancellationCallbackInfo = obj as CancellationCallbackInfo;

            cancellationCallbackInfo.Callback(cancellationCallbackInfo.StateForCallback);
        }