Всем привет! Как сделать правильно многопоточность, что бы программа не зависала? Я делал список
List<Thread> threads = new List<threads>();
туда помещал потоки, а потом по кнопке их всех останавливал проходясь циклом по ним threads[i].Abort(). Функция потоков выглядела так:
void foo(object obj) {
while(true) {
FooStruct fs = (FooStruct)obj;
AddLog(fs.arg1);
AddLog(fs.arg2);
AddLog(fs.arg3;
}
}
Эта функция выводит текст в
richtextbox
. Но когда юзер запускает очень много таких потоков (штук по 1к), то программа зависает намертво. Как сделать что бы сколько не запускай - программа их отрабатывала? Спасибо всем! Если что, это мне нужно для парсера сайтов, в аргументы передаются url сайтов, но я привёл пример немного легче.
UPD: Пробывал делать Thread.Sleep. Тоже саммое