Как реализовать создание и завершение потоков - C#
Формулировка задачи:
Здравствуйте ув.форумчане! Подскажите пожалуйста как реализовать старт и стоп потоков. В библиотеке есть метод старта и останова потоков но он не работает. Исключение: Поток выполняется или прерван; его нельзя запустить повторно.
Сам метод:
Хочу реализовать примерно вот так:
Подскажите пожалуйста как реализовать и возможно ли.
Заранее благодарен!
public static void act(string act, int count_threads)
{
Thread th = new Thread(main.run);
if (act == "start")
{
for (int i = 0; i < count_threads; i++)
{
th.Start();
}
}
if (act == "stop")
{
try
{
th.Join();
th.Abort();
}
catch { }
}
}act("start", 10);//Старт 10-ти потоков
act("stop", 0);//Стоп потоковРешение задачи: «Как реализовать создание и завершение потоков»
textual
Листинг программы
static void ThreadProc(object arg)
{
var token = (CancellationToken)arg;
while (!token.IsCancellationRequested)
// Do stuff.
}
static void Main()
{
var source = new CancellationTokenSource();
for (int i = 0; i < 10; i++)
new Thread(ThreadProc).Start(source.Token);
Console.ReadLine();
source.Cancel();
}