我有一段代码,我通过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