gpt4 book ai didi

c# - 无法关闭由 Task.Factory.StartNew 启动的任务

转载 作者:行者123 更新时间:2023-11-30 21:02:30 24 4
gpt4 key购买 nike

你好,我是 C# .net 中的多线程和任务的新手,我已经成功地开始了一个新任务,它可以继续在后台运行,使用:

//if(tsk =NotRunning){
tsk = Task.Factory.StartNew(TheMethod);

它现在工作正常但现在当它开始时我现在无法停止它,我一直在搜索 msdn并发现了一些似乎可以完成这项工作的方法,例如 Dispose buy 他们没有这样做,所以我想知道两件事:

  • 如何检查此任务是否已在运行? (这是一个 MVC 项目,任务是通过 Controller 调用 .../Task/Start 启动的,所以我不想每次访问此 URL 时都继续启动任务的另一个实例我想要在后台运行的整个应用程序中只有一个实例)

  • 其次,我如何停止它,我尝试了以下但没有奏效:

    public void TaskClose()
    {
    tsk.Dispose();
    var st = tsk.Status.ToString();
    }

我知道互联网上可能很少有关于它的答案,但他们大多使用 Lambda 表达式,我对他们的排练不是很清楚,所以请以其他方式提供答案,我什至会很感激你能指出正确的 我可以用来完成我的结果的方法property 名称。

谢谢。

最佳答案

您无法停止 TPL 任务。处理这个问题的正确方法是实现 cancellation tokens .

关于c# - 无法关闭由 Task.Factory.StartNew 启动的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13474353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com