繁体   English   中英

如何从另一个方法调用正在运行的方法的取消。 时间:2019-05-09 标签:c#.core 2.2

[英]How can I call the cancellation of a running method from another method. c# .core 2.2

[HttpPost("WorkHard ")]
public ActionResult WorkHard ()
{
   ///
}

[HttpGet("CancelWorkHard ")]
public void CancelWorkHard ()
{

}

即使我不建议这样做,这里的代码可能会给你一个想法:

    private static CancellationTokenSource TokenSource { get; set; }
    private static Int32 Counter { get; set; }

    [HttpPost("WorkHard")]
    public IActionResult WorkHard()
    {
        TokenSource = new CancellationTokenSource();

        _ = Task.Run(async () =>
          {
              while (true)
              {
                  TokenSource.Token.ThrowIfCancellationRequested();
                  await Task.Delay(500);
                  Counter++;
              }
          }, TokenSource.Token);

        return Ok();
    }

    [HttpPost("CancelWorkHard")]
    public IActionResult CancelWorkHard()
    {
        TokenSource.Cancel();
        return Ok(Counter);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM