我有一段代碼,我通過tcp/ip通道發送文件內容。有時,此連接掛起導致整個應用程序凍結。有沒有辦法讓我的主線程產生一個工作線程並監視那個工作線程。如果工作者線程成功,那就很好。如果它掛起,主線程可能會記錄錯誤消息並繼續。如何在我的測試代碼中模擬工作線程是掛起。請讓我知道代碼的樣子。我正在使用C#Visual Studio 2002.Visual Studio 2002:通過TCP/IP發送文件時C#發生凍結
1
A
回答
3
當然,這是可能的。
要麼使用BackgroudWorker或Thread類手動實現線程,要麼使用異步方法發送內容(在您的情況下更簡單)。
所有與網絡相關的類都包含其操作的異步方法。尋找包含Async
或Begin
的方法...
而模擬死線程很簡單。只是做一個無限循環:
while (true)
System.Threading.Thread.Sleep (10);
+0
我可以得到一個示例代碼嗎?謝謝 – 2010-06-02 16:40:07
+0
由於有幾個可以使用的類,因此在顯示目前的內容之前,沒有人可以給出代碼示例。在最簡單的情況下(例如使用WebClient,您可以註冊OnDownloadDataCompleted和可能的OnDownloadProgressChanged事件,然後調用webClient.DownloadDataAsync(uri)。 – Foxfire 2010-06-02 16:46:17
相關問題
- 1. Visual Studio和進程凍結時發生異常(我認爲)C#
- 2. 通過Visual C++/Cli不發送郵件發送電子郵件
- 3. 通過AsyncUDPSocket發送時發生崩潰
- 4. 通過流發送文件時發生異常
- 5. 通過Spring RestTemplate發送PUT請求時發生文件損壞
- 6. 通過C#發送郵件
- 7. 通過電子郵件發送代碼凍結
- 8. 通過C#發送HTTP GET在Visual Studio 2017年
- 9. C# - 發送一個文件通過HTTP
- 10. C#通過互聯網發送文件
- 11. Visual Studio 2005凍結
- 12. 查看將通過Visual Studio通過Web引用發送的XML
- 13. 發佈雲服務時,Visual Studio 2013會凍結
- 14. 當試圖將Azure Web發佈到Azure時,Visual Studio 2015凍結
- 15. 通過Visual Studio中的URL語音發送到文本
- 16. 通過發佈請求發送.dex文件android studio
- 17. 通過IpV6發送文件
- 18. 通過qextserialport發送文件
- 19. 通過sftp發送文件
- 20. 通過MSMQ發送文件
- 21. 通過Http發送文件
- 22. 通過SOCKET發送文件
- 23. 通過FTP發送文件
- 24. 通過流發送文件
- 25. 通過rabbitmq發送文件
- 26. 通過PSSession發送文件
- 27. OpenXML生成的代碼凍結Visual Studio
- 28. 通過c socket發送結構
- 29. Bash腳本在發送時凍結SIGINT
- 30. 如何通過C#發送郵件時實現發件人ID?
Visual Studio 2002? – Aren 2010-06-02 16:54:24
@Aren B:這將是Visual Studio .NET,使用.NET 1.0。微軟試圖假裝的版本不存在。 – Powerlord 2010-06-02 16:57:26
@R。 Bemrose:我猜1.1到2003年的前奏? – Aren 2010-06-02 17:46:16