internal async Task StopThreadsAsync() { try { await Task.WhenAll(Threads.Select(thread => thread.StopAsync(TimeSpan.FromSeconds(5))).ToArray()) .ConfigureAwait(false); } catch (AggregateException aggEx) { // An uncaught exception was likely thrown from the libuv event loop. // The original error that crashed one loop may have caused secondary errors in others. // Make sure that the stack trace of the original error is logged. foreach (var ex in aggEx.InnerExceptions) { Log.LogCritical("Failed to gracefully close Kestrel.", ex); } throw; } Threads.Clear(); #if DEBUG && !INNER_LOOP GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); #endif }
public void ReloadThreads() { if (_downloadTask != null && !_downloadTask.IsCompleted) { return; } Threads.Clear(); ImageThreads.Clear(); IsError = false; IsLoading = true; Task <List <Models.Thread> > download = _board.GetThreadsAsync(); _downloadTask = download.ContinueWith(task => { if (task.IsFaulted) { IsError = true; IsLoading = false; return; } IEnumerable <ThreadViewModel> threads = task.Result .Where(x => !x.IsSticky || CriticalSettingsManager.Current.ShowStickies) .Select(x => new ThreadViewModel(x)); Threads.AddRange(threads); ImageThreads.AddRange(threads); IsLoading = false; }, TaskContinuationOptions.ExecuteSynchronously); }
protected virtual void Dispose(bool disposing) { if (State == ServerState.Started) { Stop(); } // Free managed resources if (disposing) { Threads?.Clear(); Threads = null; Connections?.Clear(); Connections = null; TcpDataQueue?.Clear(); TcpDataQueue = null; ThreadCancellationToken?.Dispose(); ThreadCancellationToken = null; TcpServer = null; SyncLock = null; } // Free native resources here if there are any }
public void Dispose() { foreach (var thread in Threads) { thread.Stop(TimeSpan.FromSeconds(2.5)); } Threads.Clear(); }
public void JoinThreads() { ExitThreads = true; foreach (Thread t in Threads) { t.Join(); } Threads.Clear(); }
public void ClearAll() { Operations.Clear(); Processes.Clear(); Organizations.Clear(); Threads.Clear(); Categories.Clear(); Users.Clear(); Levels.Clear(); RequestIds.Clear(); }
public void StopRace() { if (!RaceIsOn) { throw new Exception("Гонка ещё не началась!"); } foreach (Thread t in Threads) { t.Abort(); } Threads.Clear(); SetStartGrid(); RaceIsOn = false; }
private void SnifferDone() { FirstPages.Clear(); //AllFirstPages.Clear(); FirstPageCount = 0; FirstPageDoneCount = 0; SnifferThreads.Clear(); Threads.Clear(); BackCallDelegate backCallDelegate = delegate() { dataGridView.Rows.Clear(); messageLabel.Text = "已经停止......"; return(null); }; messageLabel.Invoke(backCallDelegate); }
public void Setup(int threadCount, TableMap[] maps) { var th = Threads.ToArray(); foreach (var workThread in th) { workThread.Stop(); } Threads.Clear(); _allMaps.Clear(); _allMaps.AddRange(maps); _total = maps.Length; _finished = 0; UpdateProcess(); for (var i = 0; i < threadCount; i++) { Threads.Add(new WorkThread(GetNexTable, Report)); } }