簡體   English   中英

SmtpClient.SendAsync-調用后停止應用程序

[英]SmtpClient.SendAsync - Stop application after the call

我正在構建必須發送電子郵件的winforms應用程序。 我希望能夠調用SmtpClient.SendAsync方法,然后允許用戶立即關閉應用程序(我不希望在回調函數中發送結果)。 如果用戶停止了應用程序,則不會發送電子郵件。...如果應用程序保持運行狀態,則將按預期發送電子郵件...有任何建議,我如何將所有相關詳細信息傳遞給smtp服務器並關閉我的應用程序?

謝謝

需要允許您的操作執行到向SMTP服務器的傳遞完成為止。 如果您真的不在乎結果,則可以生成一個前台線程來執行傳遞。 這樣,如果用戶關閉應用程序,則其GUI將被卸載,但是前台線程將保留直到操作完成。 一旦屬於該進程的所有前台線程都已終止,該進程本身也將終止。

var t = new Thread(new ThreadStart(() => smtpClient.Send(message)));
t.IsBackground = false;
t.Start();

編輯 :正如CodeCaster所指出的那樣,此方法假定您的應用程序進程在用戶關閉其窗口后將繼續運行。 如果用戶在線程完成之前關閉系統(或手動終止進程),則該操作將失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM