예제 #1
0
        public void AddProgressCallback(object callback, SynchronizationContext syncContext)
        {
            var newCallback = new CallbackData(callback, syncContext);

            if (_progressCallback1.Callback == null)
            {
                _progressCallback1 = newCallback;
                return;
            }

            if (_progressCallbacks == null)
            {
                _progressCallbacks = new List <CallbackData>()
                {
                    newCallback
                };
            }
            else
            {
                _progressCallbacks.Add(newCallback);
            }
        }
예제 #2
0
        public void AddCompletionCallback(object callback, SynchronizationContext syncContext)
        {
            Debug.Assert(callback != null);

            var newCallback = new CallbackData(callback, syncContext);

            if (_completionCallback1.Callback == null)
            {
                _completionCallback1 = newCallback;
                return;
            }

            if (_completionCallback2.Callback == null)
            {
                _completionCallback2 = newCallback;
                return;
            }

            if (_completionCallback3.Callback == null)
            {
                _completionCallback3 = newCallback;
                return;
            }

            if (_completionCallbacks == null)
            {
                _completionCallbacks = new List <CallbackData>()
                {
                    newCallback
                };
            }
            else
            {
                _completionCallbacks.Add(newCallback);
            }
        }
예제 #3
0
 public CallbackCollection(IAsyncOperation op, object callback, SynchronizationContext syncContext)
 {
     _op = op;
     _completionCallback1 = new CallbackData(callback, syncContext);
 }