2011-03-06 42 views
0

所以即時通訊與C#工作,我必須發送大量和大量的數據每次客戶端進行初始連接..我寧願有一些方法來跟蹤消息的進展,我認爲這樣做的一種方式是將我的大量數據分成500或更多的小部分,然後單獨發送。這是一個可以接受的做法嗎?或者發送一條巨大的消息更好。發送大量的TCP數據

回答

1

我在發送大量數據時的做法是發送100份,每份大於50kb,然後根據當前百分比更新進度條。我通過將文件序列化到一個byte []然後在一個while循環中完成,然後發送Application.DoEvents()來更新UI。

我相信你也可以使用異步後臺工作者,然後讓Update事件增加進度條。

我會說,如果你可以分解它,那就做吧。因爲如果連接中斷,你總是可以重新啓動等等。這就是爲什麼BitTorrent和流文件將文件分成塊的原因。

只要確保你有很好的校驗和和錯誤檢測。您分割的部分越多,您需要追蹤的部分越多。

+1

我接受你的最後一半 - 開始是完全不相關的。 – caesay 2011-03-06 04:00:46

+1

謝謝:)消息的第一部分回覆你說:「我寧願有一些方法來跟蹤消息的進度......」我解釋瞭如何使用進度條跟蹤進度。半無關也許,但不完全不相關 – 2011-03-06 04:51:21

+0

爲什麼在世界上你會調用'Application.DoEvents'而不是在後臺線程上下載? – 2011-03-06 05:18:46