我正在啓動HubConnection。首先我得到一個新的HubConnection實例, 然後我創建了一個名爲=「fileHub」的新IHubProxy,迄今爲止這麼好。任務等待失敗
我的問題是位於(或在)等待函數ContinueWith,我嘗試啓動連接,並寫入控制檯wheater啓動成功與否。 connection.Start()成功並且「連接」被寫入控制檯。 在Console.WriteLine(「已連接」)執行完成後添加的代碼也沒有問題。
但是任務永遠不會結束,所以調用HandleSignalRAsync()方法的Client類等待完成失敗。
添加返回;或task.dispose();沒有解決我的問題。
public static async Task HandleSignalRAsync()
{
connection = new HubConnection("http://localhost:12754");
myHub = connection.CreateHubProxy("fileHub");
await connection.Start().ContinueWith(
task =>
{
if (task.IsFaulted)
{
var ex = task.Exception.GetBaseException();
Console.WriteLine("There was an error opening the connection: {0}", ex);
}
else
{
Console.WriteLine("Connected");
}
});
}
我把我的解決方案的另一類與TaskAwaiter方法:
Functions.HandleSignalRAsync().GetAwaiter().GetResult();
與調用它:
Functions.HandleSignalRAsync().Wait();
不起作用了。
爲什麼當你已經使用'await'時你使用'ContinueWith'? 'await' *之後的代碼是*延續。如果您想捕獲異常,請將該調用包裝在異常處理程序中 –