Поделиться через


Application.DispatcherShutdownMode Свойство

Определение

Возвращает или задает значение, указывающее, завершается ли цикл событий DispatcherQueue при закрытии всех окон XAML в потоке.

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

Значение свойства

Значение перечисления, указывающее, завершается ли цикл событий DispatcherQueue при закрытии всех окон XAML в потоке. Сведения о поведении по умолчанию см. в разделе Примечания.

Комментарии

Это свойство для каждого потока. При его установке свойство изменится только для текущего потока. Это свойство может иметь разные значения в разных потоках приложения.

Это свойство можно задать в любое время. Среда выполнения XAML считывает свойство каждый раз, когда закрывается последнее окно в любом потоке.

При вызове метода Application.Start (как при запуске для классических приложений WinUI) среда выполнения XAML задает DispatcherShutdownMode для текущего потока значение OnLastWindowClose . Это приводит к завершению цикла событий DispatcherQueue при закрытии всех окон XAML в потоке.

В классическом приложении WinUI код может продолжать выполняться даже после закрытия всех окон XAML в потоке. Для этого можно присвоить этому свойству значение OnExplicitShutdown. После закрытия всех окон XAML поток продолжит работать. В этом состоянии вы по-прежнему можете планировать работу в DispatcherQueue, выполнять работу в других потоках и отображать новые окна XAML.

Если приложение не вызывает Application.Start (как это обычно бывает для приложений на основе XAML Islands), это свойство по умолчанию будет равно OnExplicitShutdown. В этом состоянии среда выполнения XAML не выполняет никаких действий по выходу из цикла событий при закрытии окон XAML.

При использовании OnExplicitShutdownнеобходимо самостоятельно выйти из цикла событий, когда вы будете готовы к выходу из цикла событий в этом потоке. Чтобы правильно выйти из цикла событий, вызовите DispatcherQueue.EnqueueEventLoopExit. Кроме того, можно вызвать Application.Exit, что также приводит к тому, что среда выполнения XAML вызывает PostQuitMessage.

Применяется к

См. также раздел