Пример #1
0
        private static void SWIG_CompletionDispatcher(int key)
        {
            FutureVoid.Action action       = null;
            object            callbackLock = FutureVoid.CallbackLock;

            lock (callbackLock)
            {
                if (FutureVoid.Callbacks != null && FutureVoid.Callbacks.TryGetValue(key, out action))
                {
                    FutureVoid.Callbacks.Remove(key);
                }
            }
            if (action != null)
            {
                action();
            }
        }
Пример #2
0
        public void SetOnCompletionCallback(FutureVoid.Action userCompletionCallback)
        {
            if (this.SWIG_CompletionCB == null)
            {
                this.SWIG_CompletionCB = new FutureVoid.SWIG_CompletionDelegate(FutureVoid.SWIG_CompletionDispatcher);
            }
            object callbackLock = FutureVoid.CallbackLock;
            int    num;

            lock (callbackLock)
            {
                if (FutureVoid.Callbacks == null)
                {
                    FutureVoid.Callbacks = new Dictionary <int, FutureVoid.Action>();
                }
                num = ++FutureVoid.CallbackIndex;
                FutureVoid.Callbacks[num] = userCompletionCallback;
            }
            this.SetCompletionData(this.SWIG_OnCompletion(this.SWIG_CompletionCB, num));
        }