thread.Abort()在asp.net核心中是否有任何替代选项,因为它不再支持.Core。
// Exceptions:
// T:System.PlatformNotSupportedException:
// .NET Core only: This member is not supported.这是引发PlatformNotSupportedException异常。
我使用了thread.Interrupt(),但它不像预期的那样工作。
发布于 2019-02-06 13:11:04
Thread.Abort()已经被删除,因为它不能可靠地移植到所有的平台上,而且如果使用不当,通常会对整个应用程序域构成威胁。
推荐的方法(特别是对于ASP.NET核心)现在是使用任务并使用CancellationTokens“中止”它们。您可以了解有关如何使用CancellationTokens 这里的更多信息。
发布于 2019-12-03 12:25:37
这里的解决方案可能是使用一个共享变量,除非设置为false,否则该变量将允许线程继续执行,就像tickRunning在下面的代码示例中控制循环一样:
using System;
using System.Threading;
namespace SharedFlagVariable
{
class Program
{
static volatile 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();
}
}
}如果您喜欢使用
System.Threading.Task库,请查看这帖子,说明如何使用CancellationToken方法取消Task。
https://stackoverflow.com/questions/54554400
复制相似问题