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(); } }
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)); }