我想在我的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();
}
此代码的问题是所有线程都已创建,然后开始等待延迟完成(我的应用程序中有很多线程,恐怕这会占用计算机的大量CPU) 。 几秒钟的延迟后,是否有任何内置代码来启动线程?
谢谢!