c# - 在任务中取消异步任务

标签 c# asp.net-mvc async-await

嗨,这可能是主要功能

    static void Main(string[] args)
    {   
        foreach(var user in sommodel)
        {
             AsyncContext.Run(() => sf.StartFollowState(5));
        }
    }

这是任务

public class StartFollow
{
    public async Task StartFollowState(long iuid)
    {
        foreach(var user in sommodel)
        {
             if(somthing)
             {
                  //cancel a task
             }
              //do some
        }
        foreach(var user in sommodel)
        {
              //do some
        }
    }
}

正如你在任务中看到的那样,我想停止或取消那个 foreach 中的任务 我该怎么做?

最佳答案

不幸的是,不能简单地取消任务。您可以做的是“返回”方法,以便任务进入必杀技,然后等待垃圾收集器完成工作。

public class StartFollow
{
    public async Task StartFollowState(long iuid)
    {
        foreach(var user in sommodel)
        {
             if(somthing)
             {
                  //cancel a task
                  return;    
             }

             //do some
        }

        foreach(var user in sommodel)
        {
              //do some
        }
    }
}

关于c# - 在任务中取消异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46378842/

相关文章:

asp.net-mvc - MVC View 中的条件语句

javascript - 对于Javascript的求值顺序有更好的解决方案吗?

flutter - 第一个功能太慢,该怎么办?

c# - 条件或对 Linq-to-entities 没有影响?

c# - 将 ZipArchive 与 ASP.NET Core Web Api 结合使用

asp.net-mvc - Razor 。 ASP.NET MVC 3.动态创建页面/内容

c# - 我的异步任务总是阻塞 UI

c# - 从 c# 到 Access DB 的 INSERT STATEMENT 中的语法错误

c# - 如何在不同条件下启用/禁用多个控件中的某些控件?

c# - 为什么 ServicePointManager.SecurityProtocol 默认值在不同机器上不同?