AccessViolationException в обработчике ключей SilverLight KeyDown - PullRequest
1 голос
/ 19 ноября 2010

В событии KeyDown у меня есть:

if (e.Key == Key.Delete)
{
    if (HtmlPage.Window.Confirm("r u sure?"))
    {
        //Do stuff....
    }
}

И я получаю эту ошибку «Попытка чтения или записи защищенной памяти. Это часто указывает на то, что другая память повреждена».@Confirm?

РЕДАКТИРОВАТЬ: обходной путь, показанный ниже, и строка, на которую он выдает ошибку, была .Window.Confirm

Dispatcher.BeginInvoke(() =>
    {
        if (e.Key == Key.Delete)
        {
            if (HtmlPage.Window.Confirm("r u sure?"))
            {
                //Do stuff....
            }
        }
    });

Кто-нибудь знает быстрое решение.

1 Ответ

1 голос
/ 19 ноября 2010

Попробуйте это ...

if (e.Key == Key.Delete)
{
    Dispatcher.BeginInvoke(() =>
    {
        if (HtmlPage.Window.Confirm("r u sure?"))
        {
            //Do stuff....
        }
    }
}

Довольно хорошее объяснение на MSDN . Это обычно появляется, когда нить BackgroundWorker вращается, а затем происходит попытка получить доступ к UIElement, например, к кнопке, в этот момент вы также получите AccessViolationException.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...