Во-первых код, который выполняется без ошибок, но не покрывает все, что мне нужно это:HALT Кодекса, но не применение
public async Task SaveData()
{
// MessageDialog restartMessage;
// ^^ This was made global and is defined in SafeToSave()
// Check if it's safe to save
await SafeToSave();
if (restartMessage != null)
{
CoreDispatcher cD = Window.Current.CoreWindow.Dispatcher;
await cD.RunAsync(CoreDispatcherPriority.Normal, async() =>
{
await restartMessage.ShowAsync();
// This WILL invoke 'Application.Current.Exit()'
});
return;
// Issue is right around here...
}
// Other code...
}
Основная предпосылка заключается в том, что если это не безопасно, чтобы сохранить , диалоговое окно с сообщением сообщит пользователю, что приложение нужно перезапустить, а затем выполнить «Application.Current.Exit()», когда они затем нажмут кнопку «Okay».
Моя проблема в том, что мне нужен мой код, чтобы остановить выполнение, когда этот перезапуск ударил. Прямо сейчас 'return' только заканчивает этот метод, но после этого он будет продолжать делать другие вещи в методе, который называется SaveData(), пока мой эффект restartMessage не вступит в силу, и это не хорошо.
Я рассмотрел вопрос о поставке 'Application.Current.Exit()' над оператором 'return', но это закроет все, прежде чем появится мое сообщение об ошибке. Что тоже плохо.
Другое решение пропускало всю функцию CoreDispatcher и просто запускало ShowAsync(), за исключением того, что вызывало бы другую известную ошибку. В основном у меня есть несколько MessageDialogs, которые вызывают метод SaveData() и открывают MessageDialog, когда другой MessageDialog уже открыт, опять же, не очень хорошо.
Вот и все: мне нужно что-то, чтобы остановить выполнение моей формы кода, не убивая всего приложения или не отображая мое сообщение об ошибке. Что я могу сделать?
Вам нужно будет подождать, пока пользователь нажмет кнопку OK. Используйте MessageDialog.Commands. –
Вот что я сейчас делаю. Моя проблема заключалась в том, что код продолжает выполняться до тех пор, пока это не произойдет, и я не хочу этого делать. Могу ли я остановить это? –