asp.net核心中的thread.Abort()是否有其他选择,因为它不再支持.Core。
new ArrayList<>()
这是引发PlatformNotSupportedException异常。
我使用了thread.Interrupt(),但它没有按预期工作。
答案 0 :(得分:4)
Thread.Abort()
已被删除,以支持.NET Core中的CancellationTokens。
您可以了解有关如何使用CancellationTokens here的更多信息。
答案 1 :(得分:1)
这里的解决方案可能是使用共享变量,除非将其设置为false
,否则它将允许线程继续运行,例如tickRunning
来控制以下代码中的循环例如:
using System;
using System.Threading;
namespace SharedFlagVariable
{
class Program
{
static bool tickRunning; // flag variable
static void Main(string[] args)
{
tickRunning = true;
Thread tickThread = new Thread(() =>
{
while (tickRunning)
{
Console.WriteLine("Tick");
Thread.Sleep(1000);
}
});
tickThread.Start();
Console.WriteLine("Press a key to stop the clock");
Console.ReadKey();
tickRunning = false;
Console.WriteLine("Press a key to exit");
Console.ReadKey();
}
}
}
P.S。如果您更喜欢使用
System.Threading.Task
库,请查看this帖子,说明如何使用CancellationToken方法取消Task
。