共用方式為


Application.DispatcherShutdownMode 屬性

定義

取得或設定值,這個值會指定當線程上的所有 XAML 視窗關閉時,DispatcherQueue 事件迴圈是否結束。

public:
 property DispatcherShutdownMode DispatcherShutdownMode { DispatcherShutdownMode get(); void set(DispatcherShutdownMode value); };
DispatcherShutdownMode DispatcherShutdownMode();

void DispatcherShutdownMode(DispatcherShutdownMode value);
public DispatcherShutdownMode DispatcherShutdownMode { get; set; }
var dispatcherShutdownMode = application.dispatcherShutdownMode;
application.dispatcherShutdownMode = dispatcherShutdownMode;
Public Property DispatcherShutdownMode As DispatcherShutdownMode

屬性值

列舉值,指定當線程上的所有 XAML 視窗關閉時,DispatcherQueue 事件迴圈是否結束。 如需默認行為,請參閱。

備註

這是每一線程屬性。 當您設定它時,屬性只會變更目前線程。 在應用程式中的不同線程上,此屬性可能會有不同的值。

您可以隨時設定此屬性。 每次關閉任何線程的最後一個視窗時,XAML 運行時間都會讀取 屬性。

呼叫 Application.Start 方法 (,因為 WinUI Desktop 應用程式在啟動時) ,XAML 執行時間會針對目前的線程設定DispatcherShutdownModeOnLastWindowClose為 。 這會導致 DispatcherQueue 的事件循環在線程上的所有 XAML 視窗關閉時結束。

在 WinUI Desktop 應用程式中,您可能希望程式代碼在線程上的所有 XAML 視窗都關閉之後,仍會繼續執行。 若要完成這項作業,您可以將此屬性設定為 OnExplicitShutdown。 然後,在所有 XAML 視窗都關閉之後,線程會繼續執行。 在此狀態下,您仍然可以在 DispatcherQueue 上排程工作、在其他線程上執行工作,以及顯示新的 XAML 視窗。

如果應用程式未呼叫 Application.Start (,通常是 XAML Islands 型應用程式) 的情況,此屬性會預設為 OnExplicitShutdown。 在此狀態中,XAML 運行時間不會採取任何動作,以在關閉 XAML 視窗時結束事件迴圈。

當您使用 OnExplicitShutdown時,當您準備好讓該線程上的事件循環結束時,您必須自行結束事件迴圈。 若要正確結束事件迴圈,請呼叫 DispatcherQueue.EnqueueEventLoopExit。 或者,您也可以呼叫 Application.Exit,這也會讓 XAML 運行時間呼叫 PostQuitMessage

適用於

另請參閱