private void stopScript_Click(object sender, RoutedEventArgs e) { var script = this.DataContext as Script; var newStopProcessing = new StopProcessing(); script.AddBeforeSelected(newStopProcessing); this.Close(); }
private async Task <bool> StopProcessing(StopProcessing msg) { if (_cws != null) { if (_cws.State == WebSocketState.Open) { var cancellationTokenSource = new CancellationTokenSource(msg.ConnectionTimeout); await _cws.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, cancellationTokenSource.Token); } _cws.Dispose(); _cws = null; _recvBuffer = null; _receiveSegment = null; } return(true); }
internal static void StartMessageLoop() { if (MessageLoopRunning) { ABSLog.ThrowError("An attempt to made to start a message loop while one was already running!"); } MessageLoopRunning = true; Task.Run(async() => { while (true) { // Run immediate processes. while (ImmediateProcesses.TryPeek(out Process immediateProcess)) { immediateProcess.ProcessIsRunning = true; await immediateProcess.ExecuteAsync(); ImmediateProcesses.TryDequeue(out _); } // Run background processes. if (BackgroundProcesses.TryPeek(out Process backgroundProcess)) { backgroundProcess.ProcessIsRunning = true; await backgroundProcess.ExecuteAsync(); BackgroundProcesses.TryDequeue(out _); } else { StopProcessing?.Invoke(null, null); waitForNext.Wait(); if (!MessageLoopRunning) { return; } waitForNext.Reset(); StartProcessing?.Invoke(null, null); } } }); }
public AbortOnAllFailureReceiveTxnBatch(IBTTransportProxy transportProxy, ControlledTermination control, CommittableTransaction transaction, ManualResetEvent orderedEvent, StopProcessing stopProcessing) : base(transportProxy, control, transaction, orderedEvent, false) { _stopProcessing = stopProcessing; }