Эта проблема может возникать, когда окно сообщения, поле ввода или любое другое приглашение, которое может отображать Руководство, открывается, отображается или все еще закрывается при попытке открыть другое приглашение.
Два возможных примера будут, если ваше приложение отображает окно сообщения после того, как пользователь нажимает кнопку. Если пользователь дважды нажимает кнопку действительно быстро, прежде чем отобразится приглашение, или пользователь нажимает кнопку еще раз, пока первое приглашение полностью не закрылось, будет выдано исключение.
Я избегаю этой проблемы лично в некоторых приложениях, добавляя вызов вспомогательному методу, прежде чем показывать какие-либо подсказки. Я включил фрагмент, который выполняет функции, аналогичные моему вспомогательному методу. Я также добавляю проверку, чтобы избежать бесконечного цикла, позволяя ему работать только в течение 3 секунд, после этого я позволяю приложению аварийно завершить работу, если это необходимо (но, надеюсь, это не так).
public static void GuideSafetyWait(int maxDuration)
{
DateTime timeStarted = DateTime.Now;
while (Guide.IsVisible)
{
if ((DateTime.Now - timeStarted).TotalMilliseconds >= maxDuration)
break; // Prevent infinite loop.
Thread.Sleep(10); // This could be any number of milliseconds, but
// if its too high, it may deliver a poor user experience.
}
}