我正在使用 System.Net.WebClient.DownloadFileAsync() 方法将文件从 Internet 下载到本地驱动器。在 Windows 环境中,没有问题,但是当我尝试使用 Mono 时,一旦下载开始就会出现“请求超时”消息并且下载操作失败(零字节文件)。
我在互联网上找到了一些文章,包括 [1] 和 [2],它们说问题与 ThreadPool 有关,设置 MONO_THREADS_PER_CPU=2000 将是解决方案。到目前为止,我已经尝试过:
- 在 Win CMD 提示符下,SET MONO_THREADS_PER_CPU=2000: not resolved
- 在 Mono 2.10.8 CMD 提示符下,SET MONO_THREADS_PER_CPU=2000 未解决
- 通过 Visual Studio 使用 mono-tools [3],创建了一个配置文件 MONO_THREADS_PER_CPU=2000(在环境变量设置中):未解决
相关链接:
- http://www.mono-project.com/Article:ThreadPool_Deadlocks
- http://www.mono-project.com/Mod_mono
- -http://mono-tools.com/Debug.aspx
操作系统:Win7 x64,单声道版本:2.10.8
System.Net.WebClient client = new System.Net.WebClient();
client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCompleted);
client.DownloadFile(url, temp);