private void StartAction(RunnableAction runnableAction) { LongRunningAction runningAction = runnableAction.Invocation() as LongRunningAction; runnableAction.Invocation = (Func<object>) null; if (runningAction == null) return; runningAction.Ended += (Action) (() => { this.runningActions.Remove(runningAction); if (!runnableAction.Action.Killswitch) return; this.Dispose(); }); this.runningActions.Add(runningAction); }
private void StartAction(RunnableAction runnableAction) { LongRunningAction runningAction = runnableAction.Invocation() as LongRunningAction; runnableAction.Invocation = (Func <object>)null; if (runningAction == null) { return; } runningAction.Ended += (Action)(() => { this.runningActions.Remove(runningAction); if (!runnableAction.Action.Killswitch) { return; } this.Dispose(); }); this.runningActions.Add(runningAction); }
public void EnqueueAction(RunnableAction runnableAction) { this.queuedActions.Enqueue(runnableAction); }