0

我在wp7的某個頁面(例如page1)有一些線程。我想關閉這個線程,當應用程序停用在這個頁面中,而不是在全局應用程序文件中。當應用程序從其他頁面停用時,只調用此頁面onNvavigateFrom,位頁page1 onNavigateFrom不被調用。我怎樣才能做到這一點?或者關閉這種線程的最佳做法是什麼?如何在應用程序停用時關閉線程?

+0

回捲。通過徹底改變問題,你不能使理查德的答案失效。開始一個新的問題。 –

+0

@Hans Passant我不會完全改變問題<我只糾正我的問題。 –

回答

2

如果您的線程是使用BackgroundWorker(推薦的方法)的結果,您應該定期檢查CancellationPending,如DoWork文檔中所述。

如果你正在創建你自己的線程,你可以通過設置一個布爾標誌來模擬這個行爲,這個標誌是你的線程定期檢查(循環或其他)。你不應該做的是調用Thread.Abort,因爲如果你寫入隔離存儲或數據庫,可能會導致損壞狀態。

+0

謝謝,我想我會使用BackgroundWorker。 –

+0

它運行不正常。當我在pag1中創建一些線程然後我去page2線程仍在工作<但是當我從page2中停用應用程序時,發生異常。儘管我每次都更改CancellationPending。 –

+0

@Aram - 線程必須_complete_,設置CancellationPending是不夠的。你有什麼異常? –

相關問題