Класс task и background worker - C#
Формулировка задачи:
У нас есть приложение с пользовательским интерфейсом. Во время работы приложения происходят длительные вычисления. в чем будет различие применения этих классов? Может кто-нибудь объяснить?
Решение задачи: «Класс task и background worker»
textual
Листинг программы
public void WhileTrue(Action<int> CallBackMethod) //Action<int> - int означает что тут 1 агрумент типа int. типа - OnTickMethod(int i)
{
(new Thread(delegate () {
int i = 0;
while(true) {
Thread.Sleep(1000);
i = (i > 60) ? 0 : i + 1;
CallBackMethod(i);
}
})).Start();
}
public void Main()
{
WhileTrue(OnTickMethod); // Отправляем в аргументе ссылку на функцию.
}
public void OnTickMethod(int i)
{
this.Invoke(new Action(() => // Конструкция из Invoke позваляет другому процессу взаимодействовать с интерфейсом - иначе краш. Только в WindowsForms!
{
richTextBox1.Text = i.ToString();
}));
}