C# Silverlight:BeginInvoke为什么会抛出不受支持的异常?

C# Silverlight:BeginInvoke为什么会抛出不受支持的异常?,c#,.net,silverlight,C#,.net,Silverlight,为什么此代码会引发NotSupported异常 Action a = () => { var x = 0; }; AsyncCallback cb = (IAsyncResult ar) => { var x = 0; }; a.BeginInvoke(cb, null); Silverlight不支持此操作 相反,您可以使用BackgroundWorker或ThreadPool。Ok的可能副本。。。那它为什么要编译呢?因为这个方法存在,而且它的行为是抛出一个

为什么此代码会引发
NotSupported
异常

Action a = () =>
{
    var x = 0;
};

AsyncCallback cb = (IAsyncResult ar) =>
{
    var x = 0;
};


a.BeginInvoke(cb, null);

Silverlight不支持此操作


相反,您可以使用BackgroundWorker或ThreadPool。

Ok的可能副本。。。那它为什么要编译呢?因为这个方法存在,而且它的行为是抛出一个NotSupportedException。@Josh:但是它为什么存在呢?这是一个完全不同的问题。他问为什么会这样。我猜这是为了与WPF的二进制兼容性,但谁知道呢。@Josh-因为他们不想只为Silverlight编写一个特殊的C#编译器。BeginInvoke和Invoke方法是为委托类型自动生成的,它们的参数与委托声明匹配。