【问题标题】:cancel async task inside of the task取消任务内的异步任务
【发布时间】:2017-09-23 19:31:56
【问题描述】:

嗨,这是可能的主要功能

    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 中的任务 我该怎么做?

【问题讨论】:

  • 您要取消单个任务还是取消所有其他任务?

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


【解决方案1】:

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

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
        }
    }
}

【讨论】:

    猜你喜欢
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多