0

我在 Silverlight 页面上捕获了一个按键组合按下事件。现在在事件处理程序中,我想显示一个提示框,它接受用户输入并存储到字符串变量中。我输入了这段代码:

string input = System.Windows.Browser.HtmlPage.Window.Invoke("prompt", new string[] { "QUICK SEARCH", "ENTER YOUR SEARCH ITEM.." }) as string;

但是当我运行它时,它显示一个运行时错误 AccessViolation 错误未处理,说:“尝试读取或写入受保护的内存。这通常表明其他内存已损坏。” 任何解决方案??

4

1 回答 1

0

经过大量搜索,我发现 Silverlight 应用程序是一个单线程活动。通过上面的语句,我试图调用另一个线程。我不得不使用 Dispatcher 来解决这个问题。这就是代码的运行方式..

this.Dispatcher.BeginInvoke(() => javaScriptpopup(sender1, e1));

然后在 javaScriptPopup 中,我将我的字符串 input = System.Windows.Browser.HtmlPage.Window.Invoke("prompt", new string[] { "QUICK SEARCH", "ENTER YOUR SEARCH ITEM.." }) 称为字符串; 陈述。

这里 sender1 和 e1 是 Object 和 Keyeventargs 类型!!

于 2012-02-17T04:53:40.933 回答