private void bwRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { ThreadReport tr = (ThreadReport)e.Result; LogEvent("Поток " + tr.No + " остановлен"); int pos = int.Parse(tr.No) - 1; workers[pos] = null; bool allStopped = true; for (int i = 0; i < workerCount; i++) { if (workers[i] != null) { allStopped = false; } } if (allStopped) { LogEvent("Все потоки остановлены"); workers = null; nudThreadCount.Enabled = true; btStart.Enabled = true; } }
private void bwProgressChanged(object sender, ProgressChangedEventArgs e) { ThreadReport tr = (ThreadReport)e.UserState; //LogEvent(tr.No + " # " + tr.QueryCount + " # " + tr.AverageTime); int pos = int.Parse(tr.No) - 1; lvRep.Items[pos].SubItems[1].Text = tr.No; lvRep.Items[pos].SubItems[2].Text = tr.QueryCount; lvRep.Items[pos].SubItems[3].Text = tr.ErrorCount; lvRep.Items[pos].SubItems[4].Text = tr.AverageTime; if (tr.LastError != "") { LogEvent(tr.No + " # " + tr.LastError); } }