Backgroundworker из класса - C#
Формулировка задачи:
Вечер добрый!
Есть класс Как сделать, чтобы метод Load работал в потоке backgroundworker?
Работать с backgroundworker
Func.cs
, в нем метод Load. На форме, Load вызывается так:Func.Load("какой-то текст");
вне
класса, вроде, разобрался как, а как в классе его вызывать не пойму Подскажите, пожалуйста, как разобраться в этой ситуации и если не затруднит, приведите пример.Решение задачи: «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; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д