2010-06-02 44 views
1

我有一段代碼,我通過tcp/ip通道發送文件內容。有時,此連接掛起導致整個應用程序凍結。有沒有辦法讓我的主線程產生一個工作線程並監視那個工作線程。如果工作者線程成功,那就很好。如果它掛起,主線程可能會記錄錯誤消息並繼續。如何在我的測試代碼中模擬工作線程是掛起。請讓我知道代碼的樣子。我正在使用C#Visual Studio 2002.Visual Studio 2002:通過TCP/IP發送文件時C#發生凍結

+0

Visual Studio 2002? – Aren 2010-06-02 16:54:24

+0

@Aren B:這將是Visual Studio .NET,使用.NET 1.0。微軟試圖假裝的版本不存在。 – Powerlord 2010-06-02 16:57:26

+0

@R。 Bemrose:我猜1.1到2003年的前奏? – Aren 2010-06-02 17:46:16

回答

3

當然,這是可能的。

要麼使用BackgroudWorker或Thread類手動實現線程,要麼使用異步方法發送內容(在您的情況下更簡單)。

所有與網絡相關的類都包含其操作的異步方法。尋找包含AsyncBegin的方法...

而模擬死線程很簡單。只是做一個無限循環:

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