有人知道为什么Delegate.BeginInvoke不是';Silverlight上不支持吗?
MSDN文档说明: 在Silverlight中,在所有委托类型上自动定义的BeginInvoke方法总是抛出NotSupportedException,因此您不能使用它对线程池线程进行异步方法调用 但没有说明原因 有人有想法吗?复杂的问题。有人知道为什么Delegate.BeginInvoke不是';Silverlight上不支持吗?,silverlight,delegates,Silverlight,Delegates,MSDN文档说明: 在Silverlight中,在所有委托类型上自动定义的BeginInvoke方法总是抛出NotSupportedException,因此您不能使用它对线程池线程进行异步方法调用 但没有说明原因 有人有想法吗?复杂的问题。 委托的所有BeginInvoke方法声明如下所示 [MethodImpl(0, MethodCodeType=MethodCodeType.Runtime)] public virtual IAsyncResult BeginInvoke(...some p
委托的所有BeginInvoke方法声明如下所示
[MethodImpl(0, MethodCodeType=MethodCodeType.Runtime)]
public virtual IAsyncResult BeginInvoke(...some params...);
这里最重要的部分是MethodCodeType.Runtime。它
指定方法实现由运行时提供
有关运行时实现的更多信息,请参阅
Silverlight是跨平台框架。因此,它应该实现自己的平台无关(即托管)异步执行机制(线程和调度)。这就是managed Deployment.Current.Dispatcher类及其BeginInvoke方法(可能从Silverlight调用)的故事
顺便说一句,Dispatcher和DispatcherOperation类都与CLS兼容,保证它们在不同的CLI实现下工作。
这就是问题的简短答案
为什么Delegate.BeginInvoke不是
是否支持Silverlight
因为现在是创建真正跨平台应用程序的时候了:)这个复杂的问题。委托的所有BeginInvoke方法声明如下所示
[MethodImpl(0, MethodCodeType=MethodCodeType.Runtime)]
public virtual IAsyncResult BeginInvoke(...some params...);
这里最重要的部分是MethodCodeType.Runtime。它
指定方法实现由运行时提供
有关运行时实现的更多信息,请参阅
Silverlight是跨平台框架。因此,它应该实现自己的平台无关(即托管)异步执行机制(线程和调度)。这就是managed Deployment.Current.Dispatcher类及其BeginInvoke方法(可能从Silverlight调用)的故事
顺便说一句,Dispatcher和DispatcherOperation类都与CLS兼容,保证它们在不同的CLI实现下工作。
这就是问题的简短答案
为什么Delegate.BeginInvoke不是
是否支持Silverlight
因为现在是创建真正跨平台应用程序的时候了:)