2017-09-01 38 views
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; 
     } 

回答

1

在這裏工作很好......你怎麼知道它沒有連接?

C.

[隨意刪除,不能發表評論]

+0

我期待的捕獲異常塊被稱爲如果主機名'rpi123'不存在網絡中,但它不叫。順便說一句,你怎麼知道任務被超時取消? – Gibs

+0

我測試了一個不存在的主機,並在調試控制檯(visual studio)中得到錯誤,如預期的那樣, 1200毫秒(說任務被取消)。如果我提出更長的超時時間,例外情況說主機無法找到......所以一切都很好。 –

+0

嗯奇怪,今天我再次檢查,現在它取消。哼。感謝確認隊友雖然:) – Gibs

相關問題