/* * Called whenever the thread updates its progress, which is every line it reads * */ private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) { // This method runs on the main thread. Reader.CurrentState state = (Reader.CurrentState)e.UserState; addToListView(state); reader.wait = false; }
/* * Adds a given line and line number to the ListView * also updates the progress bar * */ private void addToListView(Reader.CurrentState cs) { if (!cs.currentLine.Equals("") && cs.lineNumber > lastLineNumber) { String[] str = new String[2]; str[0] = cs.lineNumber.ToString(); str[1] = cs.currentLine; listView.Items.Add(new ListViewItem(str)); count++; lastLineNumber = cs.lineNumber; } progressBar.PerformStep(); progressLabel.Text = cs.lineNumber.ToString() + " of " + fileLength + " Lines Read"; }