0
我試過使用CancellationTokenSource
,但超時看起來不像被調用。這裏是我的代碼如何在C#Universal WIndows App中通過超時取消StreamSocket?
try
{
CancellationTokenSource tokenSource = new CancellationTokenSource();
tokenSource.CancelAfter(1000);
HostName server = new HostName("rpi123");
StreamSocket socketTester = new StreamSocket();
await socketTester.ConnectAsync(server, ServerPort).AsTask(tokenSource.Token);
return true;
}
catch (Exception e)
{
Debug.WriteLine("ERROR " + e.Data);
return false;
}
我期待的捕獲異常塊被稱爲如果主機名'rpi123'不存在網絡中,但它不叫。順便說一句,你怎麼知道任務被超時取消? – Gibs
我測試了一個不存在的主機,並在調試控制檯(visual studio)中得到錯誤,如預期的那樣, 1200毫秒(說任務被取消)。如果我提出更長的超時時間,例外情況說主機無法找到......所以一切都很好。 –
嗯奇怪,今天我再次檢查,現在它取消。哼。感謝確認隊友雖然:) – Gibs