C# &引用;方法不受支持";尝试调用委托时出错

C# &引用;方法不受支持";尝试调用委托时出错,c#,.net,multithreading,silverlight,delegates,C#,.net,Multithreading,Silverlight,Delegates,我有一个函数Run(string,string[])我想在一个单独的线程上运行,所以我使用了一个委托和BeginInvoke: private Func<string, string[], Stack<StackItem>> runner; public MainPage() { runner = Run; } private void btnStep_Click(object sender, RoutedEventArgs e) { // snip

我有一个函数
Run(string,string[])
我想在一个单独的线程上运行,所以我使用了一个委托和
BeginInvoke

private Func<string, string[], Stack<StackItem>> 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<StackItem> Run(string program, string[] args)
{
    return interpreter.InterpretArgs(parser.Parse(lexer.Analyse(program)), args);
}
private Func runner;
公共主页()
{
跑步者=跑步者;
}
私有void btnStep_单击(对象发送方,路由目标)
{
//剪断
runner.BeginInvoke(tbCode.Text,GetArgs(),null,null);//此处出现异常
//剪断
}
专用堆栈运行(字符串程序,字符串[]args)
{
返回解释器.InterpretArgs(parser.Parse(lexer.analysis(program)),args);
}
但是,我得到一个
NotSupportedException未被用户代码处理,消息为
委托的
BeginInvoke()
方法不支持指定的方法。怎么了


我正在使用Silverlight 4.0和VS2010。

异步委托。Silverlight中的委托无法使用BeginInvoke


您应该使用a异步运行任何操作。

委托有三个参数,您只传递两个。这是如何编译的?@Hans:委托有两个参数,
堆栈
是返回类型(它是
函数
而不是
操作
)。啊!咳嗽,是的。谢谢