Использование нескольких потоков может пригодиться в разных видах работы. Самый распространённый случай - это крупная обработка данных, или нескольких данных. Очень не удобно было бы, если программа могла бы обрабатывать только одним потоком и во время работы зависала бы...
Для использования нескольких потоков надо сделать импорт стандартной библиотеки, который делается в одну строчку:
Если этого не сделать, при попытке поменять что то в форме, добавить, будет выдавать ошибку.
Для использования нескольких потоков надо сделать импорт стандартной библиотеки, который делается в одну строчку:
using System.Threading;
Далее покажу простейший пример создания потоков:
//Объявляем класс Thread, загоняем экземпляр в переменную
public Thread newThread;
private void Form1_Load(object sender, EventArgs e)
{
//Создаём новый поток, им будет функция F2
newThread = new Thread(F2);
//Запускаем поток на выполнение
newThread.Start();
}
private void F2() {
int i = 0;
//Запускаем цикл
while(i == 0){
//даём доступ к форме
this.Invoke((MethodInvoker)delegate()
{
//присваиваем значение текстовому полю
textBox1.Text += "1";
//делаем паузу на 50 мсек
Thread.Sleep(50);
});
}
}
private void button1_Click(object sender, EventArgs e)
{
//Останавливаем/удаляем поток
newThread.Abort();
}
Обязательно надо заметить, что данный фрагмент даёт доступ к форме из постороннего потока:
this.Invoke((MethodInvoker)delegate()
{
textBox1.Text += "1";
});