.NET 4.x Как запустить метод в отдельном потоке? - C#

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

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

есть метод
string s = mac.termt(m, m.GetLength(0)).ToString();
он очень долго весит при обработке данных из за этого винда считает что приложение зависло... Решение напрашивается запустить в отдельном потоке но так как с парралельностью еще не разу не работал то не знаю как это сделать... чтение про Thread не помогло .

Решение задачи: «.NET 4.x Как запустить метод в отдельном потоке?»

textual
Листинг программы
using System;
using System.Threading;
using System.Windows.Forms;
 
namespace Test
{
   class Programm:Form
   {
     delegate string Delegate(параметр1, параметр2); //создаешь делегат в классе
     int m;
     string s;
     SomeClass mac;//твой объект
     Programm()
     {
       InitializeComponent();
       mac = new SOmeClass();
       Delegate del = new Delegate(mac.termt); //инкапсулируешь в делегат метод из класса
       del.BeginInvoke(параметр1, параметр2, new AsyncCallback(CallBackFunc), null);
     }
 
     void CallBackFunc(IAsyncResult aRes)
     {
       del.EndInvoke(aRes);
       this.Close();//Закрываешь что ты там хотел 
     }
   }
}

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


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

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

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