У меня есть приложение для создания окон, которое запускает метод класса BackgroundWorker.Как связать событие изменения прогресса с индикатором прогресса
Я хотел бы добавить окна, отображающие индикатор выполнения, чтобы показать прогресс.
в методе класса У меня есть цикл Еогеаспа поэтому я хотел бы каждый цикл, чтобы отправить форму событию
с текущим процентом.
это то, что я делаю:
public partial class Form1 : Form
{
Parsser inst;
public Form1()
{
InitializeComponent();
inst = new Parsser();
backgroundWorker1.WorkerReportsProgress = true;
backgroundWorker1.WorkerSupportsCancellation = true;
}
private void button2_Click(object sender, EventArgs e)
{
if (this.textBox1 != null & this.textBox2 != null)
{
if (backgroundWorker1.IsBusy != true)
{
// Start the asynchronous operation.
backgroundWorker1.RunWorkerAsync();
}
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
inst.init(this.textBox1.Text, this.textBox2.Text);
inst.ParseTheFile();
System.Windows.Forms.MessageBox.Show("Parsing finish successfully");
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
this.progressBar1.Value = e.ProgressPercentage;
}
}
}
`
и в классе я сделать this-
public Parsser()
{
bgReports = new BackgroundWorker();
bgReports.WorkerReportsProgress = true;
}
public void ParseTheFile()
{
Lines = File.ReadAllLines(FilePath);
this.size = Lines.Length;
foreach (string line in Lines)
{
bgReports.ReportProgress(allreadtchecked/size);
от какой-то причине не работают какие-либо идеи?
я изменить код, и я отправить backgroundWorker1 в конструктор Parsser. и в классе parsser я вызываю bgReports.ReportProgress (allreadtchecked/size); и попытайтесь поймать это событие частным void backgroundWorker1_ProgressChanged, но тем не менее он никогда не попадает в private void backgroundWorker1_ProgressChanged – MoShe
Этот ответ по-прежнему использует второй BackgroundWorker, bgReports.У вас ДЕЙСТВИТЕЛЬНО не должно быть 2 класса, совместно работающих с работником, и у вас нет второго рабочего. –
так что должно быть ответом? – MoShe