我使用C#,.NET Framework 3.5的軟件開發把延遲。我的應用程序一次通過TCP/IP連接到多個客戶端,並從中收集一些數據。客戶號碼非常高(超過100)。在我的應用程序開發過程之前,我已經做了一些研究,並且看到我必須在性能和可管理性方面使用異步套接字實現。
使用異步套接字方法時
似乎好現在,但我目前正在尋找將延遲只是一個數據發送到客戶端之前,最好的方式。我的應用程序有時需要等待大約2秒才能發送特定的數據。目前,我只是在異步發送方法之前放置了System.Threading.Thread.Sleep(2000);
的代碼行。這是方便的方式還是有更好的方法呢?這個Sleep
函數是否阻塞了我的主應用程序線程,還是阻塞了只屬於異步套接字線程的線程?
可能大家知道所需的延遲的原因嗎?這似乎有點奇怪,故意延遲 –
@AlastairPitts我把延遲,因爲客戶端機器需要延遲一些操作後。他們不會在幾秒鐘內回覆任何命令。 – Fer
更好的選擇是在客戶端準備好後緩衝客戶端數據並使用數據。一個asnyc tcp(或其他)客戶端的方式。 – HuseyinUslu