C# 如何在定义的特定时间后中止多线程处理中的线程?

C# 如何在定义的特定时间后中止多线程处理中的线程?,c#,multithreading,C#,Multithreading,我只想在1000毫秒后停止每个线程。线程不是这样工作的。以下是您可以执行的操作列表: 给一个线程少量的工作,使其在约1秒内完成(但这不是最好的选择) 使用volatile bool或从WaitHandle派生的类来取消线程中的工作 使用支持取消的类:Task或BackgroundWorker 在任何情况下,都不要调用thread.Abort,因为它可能会使应用程序处于不稳定状态。因此,请确保每个ThreadX都在运行,并在1000毫秒内完成。不要中止线程。永远。我想在执行四分钟后停止这五个线

我只想在1000毫秒后停止每个线程。

线程不是这样工作的。以下是您可以执行的操作列表:

  • 给一个线程少量的工作,使其在约1秒内完成(但这不是最好的选择)
  • 使用
    volatile bool
    或从
    WaitHandle
    派生的类来取消线程中的工作
  • 使用支持取消的类:
    Task
    BackgroundWorker

在任何情况下,都不要调用
thread.Abort
,因为它可能会使应用程序处于不稳定状态。

因此,请确保每个ThreadX都在运行,并在1000毫秒内完成。不要中止线程。永远。我想在执行四分钟后停止这五个线程。@user3567592那么选项2和3对您的应用程序有好处。你可以使用一个计时器,它会在四分钟内滴答作响。在计时器已过事件中,您可以“取消”工作线程。非常感谢。现在我已经使用BackgroundWorker。
Thread thr1 = new Thread(new ThreadStart(Thread1));
Thread thr2 = new Thread(new ThreadStart(Thread2));
Thread thr3 = new Thread(new ThreadStart(Thread3));
Thread thr4 = new Thread(new ThreadStart(Thread4));
Thread thr5 = new Thread(new ThreadStart(Thread5));

thr1.Start();
thr2.Start();
thr3.Start();
thr4.Start();
thr5.Start();