0

我有一項服務,我正在編寫這個服務,它將每秒大約輪詢一次Web服務,以查看數據是否可用於客戶端。輪詢頻率如此頻繁的原因是數據獲取被髮送到服務正在運行的客戶端工作站,用戶需要以半實時方式查看這些數據。目前我正在使用WebClient對象並運行「.DownloadString」操作。我正在使用「using」語句初始化WebClient,並將其全部置於無盡的while循環中。目前該服務在任務管理器中消耗了超過30mb的內存,我需要嘗試將它保持在10mb以下,因爲它將運行在工作站上。WebClient在長時間運行過程中的內存使用情況

有關如何在沒有WebClient給我的內存佔用空間的情況下執行這些Web請求的任何想法?我願意接受任何想法。或者我只是使用WebClient錯誤?看起來很直截了當。

謝謝。

回答

0

通過http/html輪詢數據似乎是浪費時間和資源。如果您使用TcpClient連接實際上發送數據新數據可用時,您的確可以使用很少的資源。

+0

問題是Web服務器端的服務實際監控數據。我們目前的架構是爲客戶端設置輪詢Web服務器。對於你在說什麼,我需要有一個服務器設置發送數據包到客戶端(PUSH),當數據可用是正確的?我也沒有提到的是,這可能會在大約200個客戶端上運行。對於這些新信息,TcpClient仍然是一個很好的選擇嗎? – mrglover

+0

如果您需要半實時,輪詢webservers不是最好的方式。與二進制數據相比,該協議有很多開銷,並且輪詢永遠不會有效。連接越多,效率就越低。你知道數據的頻繁變化實際上會是多少? – nvoigt

+0

所以如果我是更具體的,這是一個客戶端,從iPhone掃描器掃描條形碼後,將條形碼數據降低到客戶端。因此,用戶掃描條形碼,數據必須出現在屏幕上。將這些數據提供給客戶的首選方法是什麼? – mrglover

相關問題