Salve a tutti, sto scrivendo un programma con win form con al suo interno l'evento BackgroundWork per poter svolgere delle funzioni in loop con delay.
Ora però cercavo di capire come funziona il controllo, ed ho provato a fare qualcosa come:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace background
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = (BackgroundWorker)sender;
int contatore=0;
while (true){
contatore++;
worker.ReportProgress(contatore);
Thread.Sleep(3000);
}
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
label1.Text = e.ProgressPercentage.ToString();
}
}
}
Praticamente clickando sul pulsante parte un loop infinito con contatore, ed il suo valore viene visualizzato all'interno della label1.
Ahimè peròp in pratica non funziona :\
Qualche aiuto?
Grazia anticipatamente :)