c# - ThreadPool.QueueUserWorkItem 与线程内的异步调用

标签 c# .net xamarin.ios

我有一个 MonoTouch 应用程序,它使用线程池来管理后台线程的数量。如果我让 ThreadPool 产生一个线程并在该线程内,它会触发一个异步 Web 请求,那么该 Web 请求是否会产生第二个线程?如果是这样,该线程是否会从线程池中移除?

这种事情的最佳实践是什么? Web 请求是否应该只是一个同步调用,以降低当前线程数?

ThreadPool.QueueUserWorkItem(callback =>
{
    WebClient client = new WebClient();
    client.DownloadStringAsync(new Uri("http://www.google.com/"));
    client.DownloadStringCompleted += (a,b) => Console.WriteLine("Done");
});

最佳答案

如果您之后立即结束线程池回调,就像您在那里展示的那样,应该没有问题。您只是将一个线程池调用时间轴替换为另一个。

关于c# - ThreadPool.QueueUserWorkItem 与线程内的异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4939110/

相关文章:

c# - 使用 MVC、MVP、MVVM 的真实 winforms/wpf 项目

c# - 你怎么知道流是否关闭?

iphone - 如何使用MonoTouch在iPhone上播放声音?

c# - 返回随机字母表的扩展方法

c# - 如何在 C# 中获取 CPU 使用率?

.net - 使用 Invoke 的跨线程异常的堆栈跟踪

c# - 如果 catch 和 finally block 都抛出异常会发生什么?

xamarin - 错误: The application ApplicationName needs to be rebuilt due to an inconsistency between the connected Mac and the local app

Facebook OAuth Xamarin 表单重定向

c# - 线程、事件和 GUI