/// <summary> /// Runs the async task that performs the scripting operation. /// </summary> private void RunTask <T>(RequestContext <T> context, ScriptingOperation operation) { ScriptingTask = Task.Run(async() => { try { this.ActiveOperations[operation.OperationId] = operation; operation.Execute(); } catch (Exception e) { await context.SendError(e); } finally { ScriptingOperation temp; this.ActiveOperations.TryRemove(operation.OperationId, out temp); } }).ContinueWithOnFaulted(async t => await context.SendError(t.Exception)); }
/// <summary> /// Runs the async task that performs the scripting operation. /// </summary> private void RunTask <T>(RequestContext <T> context, ScriptingOperation operation) { Task.Run(() => { try { Debug.Assert(!this.ActiveOperations.ContainsKey(operation.OperationId), "Operation id must be unique"); this.ActiveOperations[operation.OperationId] = operation; operation.Execute(); } catch (Exception e) { context.SendError(e); } finally { ScriptingOperation temp; this.ActiveOperations.TryRemove(operation.OperationId, out temp); } }); }