private BackgroundWorker tacheArrierePlanMajBarreProgression; //1 private void btnLancement_Click(object sender, EventArgs e) { tacheArrierePlanMajBarreProgression = new BackgroundWorker(); //2 tacheArrierePlanMajBarreProgression.WorkerReportsProgress = true; tacheArrierePlanMajBarreProgression.WorkerSupportsCancellation = true; tacheArrierePlanMajBarreProgression.DoWork += delegate(object s, DoWorkEventArgs args) //3 { BackgroundWorker tacheArrierePlanIncrementation = s as BackgroundWorker; for (int i = 0; i < 10; i++) { if (tacheArrierePlanIncrementation.CancellationPending) { args.Cancel = true; return; } Thread.Sleep(1000); tacheArrierePlanIncrementation.ReportProgress(i + 1); } }; tacheArrierePlanMajBarreProgression.ProgressChanged += delegate(object s, ProgressChangedEventArgs args) //4 { pgbTacheArrierePlan.Value = args.ProgressPercentage; }; tacheArrierePlanMajBarreProgression.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args) { pgbTacheArrierePlan.Value = 0; }; tacheArrierePlanMajBarreProgression.RunWorkerAsync();//5 }
![]() | ![]() |
private delegate void Add(int i); //1 private void AddItem(int i) //2 { listBox1.Items.Add(i); Application.DoEvents(); } private void LoadListBox(object state) //3 { for (int i = 0; i < 100000000; i++) listBox1.Invoke(new Add(AddItem), new object[] { i }); } private void Form1_Load(object sender, System.EventArgs e) //4 { System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(LoadListBox)); }
private BackgroundWorker tacheArrierePlanMajListBox; //1 private delegate void Add(int i); private void AddItem(int i) { listBox1.Items.Add(i); Application.DoEvents(); } private void Form1_Load(object sender, System.EventArgs e) { tacheArrierePlanMajListBox = new BackgroundWorker(); //2 tacheArrierePlanMajListBox.WorkerReportsProgress = true; tacheArrierePlanMajListBox.WorkerSupportsCancellation = true; tacheArrierePlanMajListBox.DoWork += delegate(object s, DoWorkEventArgs args) //3 { for (int i = 0; i < 100000000; i++) { listBox1.Invoke(new Add(AddItem), new object[] { i }); } }; tacheArrierePlanMajListBox.RunWorkerAsync();//5 }
Avis de décès, Carte de voeux, Bricolage, Coloriages, Cinéma, Coiffure, Cuisine, Déco, Dictionnaire, Horoscope, Jeux en ligne, Programme TV, Recettes, Restaurant, SMIC, Test débit, Voyage, Signification prénom