我遇到了InvalidCast异常。我正在调用一个委托来运行一些功能。在委托的回调方法中,我试图获取函数的返回值,如下所示。
public delegate SyncHelper.SyncPlan RunJobDelegate();
public static void SyncJobCallback(IAsyncResult result)
{
RunJobDelegate runSyncJob = (RunJobDelegate)result.AsyncState;
SyncHelper.SyncPlan obj_Plan = runSyncJob.EndInvoke(result);
当RunJobDelegate runSyncJob =(RunJobDelegate)result.AsyncState;被称为我遇到一个异常,说“无法将类型'RunJobDelegate'的对象强制转换为'RunJobDelegate'。”
如果有人以前见过这个问题,请帮我解决。
迪夫亚。
答案 0 :(得分:2)
如果你的代码中定义了两种不同的RunJobDelegate类型,那么这种事情应该只是偶然的。确保它没有定义两次。
如果这不是问题,请为我们检查更多代码(包括调用函数)。
答案 1 :(得分:0)
您是否在调试器中检查了result.AsyncState的类型?
您确定要使用AsyncState而不是AsyncDelegate吗?
参考:http://msdn.microsoft.com/en-us/library/system.iasyncresult.asyncstate.aspx