Я хочу построить менеджер потоков в моем приложении C# WinForms
.
Вот как я могу добавить новую тему:
Thread thread = new Thread(delegate()
{
Thread.Sleep(TimeSpan.FromSeconds(delay));
//MY CODE
RemoveCurrentThread();
});
threadArr.Add(thread);
thread.Start();
Вот как я удалю тему:
public void RemoveCurrentThread()
{
if (threadArr.Contains(Thread.CurrentThread))
{
threadArr.Remove(Thread.CurrentThread);
}
}
И иногда я хочу отменить весь запущенный поток, поэтому я использую:
public void CancelAllThreads()
{
if (threadArr.Count == 0)
return;
foreach (Thread item in threadArr)
{
if (item.IsAlive)
item.Abort();
}
threadArr.Clear();
}
Проблема с этим кодом состоит в том, что все потоки создаются, а затем начинают ждать окончания задержки (у меня много потоков в приложении, и я боюсь, что это отнимает много процессора у компьютера) ,
Есть ли какой-нибудь встроенный код для запуска потока через пару секунд?
Спасибо!