尝试调用委托时出现“方法不受支持”错误
我有一个函数Run(string, string[])
,我想在一个单独的线程上运行,所以我使用委托和BeginInvoke
:
private Func<string, string[], Stack> runner; public MainPage() { runner = Run; } private void btnStep_Click(object sender, RoutedEventArgs e) { // snip runner.BeginInvoke(tbCode.Text, GetArgs(), null, null); // Exception here // snip } private Stack Run(string program, string[] args) { return interpreter.InterpretArgs(parser.Parse(lexer.Analyse(program)), args); }
但是,我得到NotSupportedException was unhandled by user code
Specified method is not supported
NotSupportedException was unhandled by user code
,并且委托的BeginInvoke()
方法Specified method is not supported
的消息。 出了什么问题?
我正在使用Silverlight 4.0和VS2010。
异步Delegate.BeginInvoke不适用于Silverlight中的代理。
您应该使用BackgroundWorker来异步运行任何内容。