尝试调用委托时出现“方法不受支持”错误

我有一个函数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来异步运行任何内容。