我有一個應用程序調用第三方遠程服務器。我正在使用BackgroundWorker來運行它異步。C#BackgroundWorker - 如何取消worker.CancellationPending狀態?
如果我調用CancelAsync()取消遠程進程,然後使用worker.CancellationPending狀態觸發對此遠程服務器上的Close()方法的調用,則遠程服務器會彈出一條消息「您正在嘗試要結束這個過程,那是你想要的嗎?「和是/否按鈕。
如果用戶按是,那麼沒有問題,遠程服務器關閉。但是,如果用戶按否,那麼我如何取消CancellationPending狀態,以便我的過程可以繼續,直到用戶再次調用CancelAsynch()爲止?
編輯:下面的第一個答案:我如何處理這樣一個事實,即用戶可以選擇不關閉遠程服務器,並在應用程序處於無法更改的取消狀態時保持運行狀態。
編輯:鍵盤上的武士將其標記爲重複之前,請閱讀該死的問題。
到這裏看看:http://stackoverflow.com/q/4732737/3956100 – Niklas
_「我怎麼處理事實上,用戶可以選擇不關閉遠程服務器「_ - 您需要將代碼中的交互重新推回以在調用CancelAsync()之前發生。這樣,您不會取消不應取消的流程。請注意,這也可以讓用戶在考慮是否要取消時繼續處理,在大多數情況下這應該是一件好事。 –
@Niklas這個鏈接不是同一個問題。 –