public async Task <TResult> InvokeAsync <TResult>(Func <TResult> callback) { var invokeFunc = new InvokeFunc(() => callback.Invoke()); _funcQ.Post(invokeFunc); var(exceptionDispatchInfo, result) = await invokeFunc.InvokedFlag.ReceiveAsync(); exceptionDispatchInfo?.Throw(); return((TResult)result !); }
public void Invoke(Action action) { var invokeFunc = new InvokeFunc(() => { action.Invoke(); return(null); }); _funcQ.Post(invokeFunc); (ExceptionDispatchInfo exceptionDispatchInfo, _) = invokeFunc.InvokedFlag.Receive(); exceptionDispatchInfo?.Throw(); }
public async Task InvokeAsync(Action action) { var invokeFunc = new InvokeFunc(() => { action.Invoke(); return(null); }); _funcQ.Post(invokeFunc); var(exceptionDispatchInfo, _) = await invokeFunc.InvokedFlag.ReceiveAsync(); exceptionDispatchInfo?.Throw(); }
public Task InvokeAsync(string methodName, params object[] args) { return(InvokeFunc.Invoke(methodName, args)); }