public static Task <XiServerInitateCompleteResult> InitiateAsync(this XiServer server, object asyncState = null) { var t = new TaskCompletionSource <XiServerInitateCompleteResult>(); server.Initiate((e, o) => t.TrySetResult(new XiServerInitateCompleteResult(e, o)), asyncState); return(t.Task); }
public static IObservable <XiServerInitateCompleteResult> InitiateEx(this XiServer server) { var subject = new Subject <XiServerInitateCompleteResult>(); new Task(() => server.Initiate((e, o) => { var sub = (Subject <XiServerInitateCompleteResult>)o; sub.OnNext(new XiServerInitateCompleteResult() { Error = e, }); sub.OnCompleted(); }, subject)).Start(); return(subject.Take(1)); }