2017-09-23 115 views
2

你好,這是5月主要功能取消任務的內部異步任務

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 我該怎麼做?

+0

您想要取消單個任務或所有其他任務嗎? –

回答

0

不幸的是,人們不會簡單地取消任務。你可以做的是從方法中「返回」,這樣任務運行成涅and,然後等待垃圾收集器完成這項工作。

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