internal void PendError(string reason) { foreach (var errorCallback in ErrorCallbacks) { var callback = errorCallback; EventLoop.Pend(() => callback(reason)); } }
internal void PendThen(object result) { foreach (var thenCallback in ThenCallbacks) { var callback = thenCallback; EventLoop.Pend(() => callback(result)); } }
public static void Async <TReturn>(Func <TReturn> operation, Action <Exception, TReturn> callback) { EventLoop.Pend(() => { try { var result = operation(); callback(null, result); } catch (Exception ex) { EventLoop.Pend(() => callback(ex, default(TReturn))); throw; } }); }
public static void Async(Action operation, Action <Exception> callback = null) { EventLoop.Pend(() => { try { operation(); if (callback != null) { EventLoop.Pend(() => callback(null)); } } catch (Exception ex) { if (callback != null) { EventLoop.Pend(() => callback(ex)); } } }); }