Backgroundworker из класса - C#

Узнай цену своей работы

Формулировка задачи:

Вечер добрый! Есть класс

Func.cs

, в нем метод Load. На форме, Load вызывается так:
Листинг программы
  1. Func.Load("какой-то текст");
Как сделать, чтобы метод Load работал в потоке backgroundworker? Работать с backgroundworker

вне

класса, вроде, разобрался как, а как в классе его вызывать не пойму Подскажите, пожалуйста, как разобраться в этой ситуации и если не затруднит, приведите пример.

Решение задачи: «Backgroundworker из класса»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.ComponentModel;
  6. using System.Data;
  7.  
  8. namespace ConsoleApplication31 {
  9.     class Program {
  10.         static void Main(string[] args) {
  11.             MyWorker worker = new MyWorker();
  12.             worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);
  13.             worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
  14.             worker.RunWorkerAsync();
  15.         }
  16.  
  17.         static void worker_ProgressChanged(object sender, ProgressChangedEventArgs e) {
  18.             //Тут отображение прогресса асинхронной операции
  19.         }
  20.  
  21.         static void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
  22.             //Тут проверяем результат и передаем его методу, выводящему его в отображение...
  23.             if (e.Result != null && e.Result is DataTable) {
  24.                 UpdateView(e.Result as DataTable);
  25.             }
  26.         }
  27.         static void UpdateView(DataTable dt) {
  28.             //Тут обновляем отображение данных...
  29.         }
  30.        
  31.        
  32.     }
  33.     public class MyWorker : BackgroundWorker {
  34.         DataTable dt;
  35.  
  36.         public MyWorker() {
  37.             this.WorkerReportsProgress = true;
  38.             this.WorkerSupportsCancellation = true;
  39.         }
  40.         protected override void OnDoWork(DoWorkEventArgs e) {
  41.             Run(e);
  42.         }
  43.         void Run(DoWorkEventArgs e) {
  44.             dt = new DataTable();
  45.             //Тут запрашиваем таблицу из БД...
  46.             //И заполняем ее данными...
  47.             e.Result = dt;
  48.         }
  49.     }
  50. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы