首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >thread.Abort()在Asp.net内核中的替代?

thread.Abort()在Asp.net内核中的替代?
EN

Stack Overflow用户
提问于 2019-02-06 13:07:59
回答 2查看 6.2K关注 0票数 1

thread.Abort()在asp.net核心中是否有任何替代选项,因为它不再支持.Core。

代码语言:javascript
复制
        //   Exceptions:
        //   T:System.PlatformNotSupportedException:
        //   .NET Core only: This member is not supported.

这是引发PlatformNotSupportedException异常。

我使用了thread.Interrupt(),但它不像预期的那样工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-06 13:11:04

Thread.Abort()已经被删除,因为它不能可靠地移植到所有的平台上,而且如果使用不当,通常会对整个应用程序域构成威胁。

推荐的方法(特别是对于ASP.NET核心)现在是使用任务并使用CancellationTokens“中止”它们。您可以了解有关如何使用CancellationTokens 这里的更多信息。

票数 5
EN

Stack Overflow用户

发布于 2019-12-03 12:25:37

这里的解决方案可能是使用一个共享变量,除非设置为false,否则该变量将允许线程继续执行,就像tickRunning在下面的代码示例中控制循环一样:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54554400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档