public virtual IProgressResult <TProgress> Execute <TProgress>(Action <IProgressPromise <TProgress> > action) { ProgressResult <TProgress> result = new ProgressResult <TProgress>(true); Executors.RunAsyncNoReturn(() => { try { if (result.IsCancellationRequested) { result.SetCancelled(); return; } action(result); if (!result.IsDone) { result.SetResult(null); } } catch (Exception e) { if (!result.IsDone) { result.SetException(e); } } }); return(result); }
public virtual IAsyncResult <TResult> Execute <TResult>(Action <IPromise <TResult> > action) { var result = new AsyncResult <TResult>(true); Executors.RunAsyncNoReturn(() => { try { if (result.IsCancellationRequested) { result.SetCancelled(); return; } action(result); if (!result.IsDone) { result.SetResult(); } } catch (Exception e) { if (!result.IsDone) { result.SetException(e); } } }); return(result); }
public virtual Asynchronous.IAsyncResult Execute(Action <IPromise> action) { AsyncResult result = new AsyncResult(true); Executors.RunAsyncNoReturn(() => { try { if (result.IsCancellationRequested) { result.SetCancelled(); return; } action(result); if (!result.IsDone) { result.SetResult(null); } } catch (Exception e) { if (!result.IsDone) { result.SetException(e); } } }); return(result); }
public void Start() { if (this.running) { return; } this.running = true; Executors.RunAsyncNoReturn(() => { IDelayTask task = null; while (running) { lock (_lock) { if (queue.Count <= 0) { Monitor.Wait(_lock); continue; } task = queue[0]; if (task.Delay.Ticks > 0) { Monitor.Wait(_lock, task.Delay); continue; } queue.RemoveAt(0); } task.Run(); } }); }
public virtual void Run() { try { Executors.RunAsyncNoReturn(() => this.wrappedAction()); } catch (Exception) { } }
public virtual void Run() { try { Executors.RunAsyncNoReturn(() => this.wrappedAction()); } catch (Exception e) { #if DEBUG if (log.IsWarnEnabled) { log.Warn(e); } #endif } }
public virtual IAsyncResult <TResult> Execute <TResult>(Func <TResult> func) { AsyncResult <TResult> result = new AsyncResult <TResult>(true); Executors.RunAsyncNoReturn(() => { try { if (result.IsCancellationRequested) { result.SetCancelled(); return; } TResult tr = func(); result.SetResult(tr); } catch (Exception e) { result.SetException(e); } }); return(result); }
public virtual IAsyncResult Execute(Action action) { AsyncResult result = new AsyncResult(true); Executors.RunAsyncNoReturn(() => { try { if (result.IsCancellationRequested) { result.SetCancelled(); return; } action(); result.SetResult(); } catch (Exception e) { result.SetException(e); } }); return(result); }