2011-02-05 86 views
0

我在一段我正在开发的软件中存在一点代码问题。Dispatcher.BeginInvoke C#中的代码路径错误#

this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Background, new System.Windows.Threading.DispatcherOperationCallback(delegate 
{ 
    AccountSyncOptions getData = new AccountSyncOptions(syncProgress, lblStatus, tblLogins, cboFilter, searching, searchString, btnClearSearch); 
    getData.retrieveLocalData(); 
    getData.retrieveOnlineData(); 
}), null); 

当我把上面的代码中出现一个错误,其说System.Windows.Threading.DispatcherOperationCallBack“并非所有的代码路径在类型的匿名方法返回一个值”。

回答

1

DispatcherOperationCallback委托的签名是

public delegate Object DispatcherOperationCallback(
    Object arg 
) 

所以,你需要从你的匿名方法返回一个对象:

this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Background, new System.Windows.Threading.DispatcherOperationCallback(delegate 
{ 
    AccountSyncOptions getData = new AccountSyncOptions(syncProgress, lblStatus, tblLogins, cboFilter, searching, searchString, btnClearSearch); 
    getData.retrieveLocalData(); 
    getData.retrieveOnlineData(); 
    return null; 
}), null); 
+0

感谢您的帮助 – Boardy 2011-02-05 18:43:21