示例#1
0
        private void AcquireTransferCancellationHandler(object _acquireNode, bool canceling)
        {
            LinkedListNode <Message> acquireNode = (LinkedListNode <Message>)_acquireNode;
            AsyncTransfer            acquire     = acquireNode.Value.transfer;

            if (acquire.TryLock())
            {
                // To access shared mutable state we must acquire the lock
                lock (theLock)
                {
                    pendingMessages.Remove(acquireNode);
                }

                // Release the resources associated with the async acquire.
                acquire.Dispose(canceling);

                // Complete the TaskCompletionSource to RanToCompletion (timeout)
                // or Canceled final state.
                if (canceling)
                {
                    acquire.SetCanceled();
                }
                else
                {
                    acquire.SetResult(false);
                }
            }
        }