2017-03-01 17 views

回答

1

通常,這可以通過CancellationTokenSource來實現,並且在施工時延遲交付。但是,似乎基於任務的SendMailAsync不支持取消,但確實有可用於終止異步發送的方法(SendAsyncCancel)。你可以結合這一點到期CancellationTokenSource

async Task Send() 
{ 
    using(SmtpClient c = new SmtpClient()) 
    using(var cts = new CancellationTokenSource(30000)) 
    { 
     cts.Token.Register(() => c.SendAsyncCancel()); 
     await c.SendMailAsync("[email protected]","[email protected]","foo","bar"); 
    } 
} 
+0

非常感謝你! – Baconbeastnz