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

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

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

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

Func.cs

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

вне

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

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

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Data;
 
namespace ConsoleApplication31 {
    class Program {
        static void Main(string[] args) {
            MyWorker worker = new MyWorker();
            worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);
            worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
            worker.RunWorkerAsync();
        }
 
        static void worker_ProgressChanged(object sender, ProgressChangedEventArgs e) {
            //Тут отображение прогресса асинхронной операции
        }
 
        static void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
            //Тут проверяем результат и передаем его методу, выводящему его в отображение...
            if (e.Result != null && e.Result is DataTable) {
                UpdateView(e.Result as DataTable);
            }
        }
        static void UpdateView(DataTable dt) {
            //Тут обновляем отображение данных...
        }
        
        
    }
    public class MyWorker : BackgroundWorker {
        DataTable dt;
 
        public MyWorker() {
            this.WorkerReportsProgress = true;
            this.WorkerSupportsCancellation = true;
        }
        protected override void OnDoWork(DoWorkEventArgs e) {
            Run(e);
        }
        void Run(DoWorkEventArgs e) {
            dt = new DataTable();
            //Тут запрашиваем таблицу из БД...
            //И заполняем ее данными...
            e.Result = dt;
        }
    }
}

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


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

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

11   голосов , оценка 4.091 из 5
Похожие ответы