C# 线程内具有异步调用的ThreadPool.QueueUserWorkItem

C# 线程内具有异步调用的ThreadPool.QueueUserWorkItem,c#,.net,xamarin.ios,C#,.net,Xamarin.ios,我有一个MonoTouch应用程序,它使用线程池来管理后台线程的数量。如果我让线程池从一个线程中生成,并且在线程中,它会触发一个异步web请求,那么web请求会从第二个线程中生成吗?如果是,该线程是否会从线程池中删除 这种事情的最佳实践是什么?web请求是否应该只是一个同步调用,以降低当前线程数 ThreadPool.QueueUserWorkItem(callback => { WebClient client = new WebClient(); client.Down

我有一个MonoTouch应用程序,它使用线程池来管理后台线程的数量。如果我让线程池从一个线程中生成,并且在线程中,它会触发一个异步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");
});

如果你马上结束你的线程池回调,就像你在那里展示的那样,应该不会有问题。您只是将一个线程池调用时间线替换为另一个线程池调用时间线。

是的,它将从线程池中取出,可能会耗尽。在这个特殊的场景中,双异步的意义是什么?你的意思是你想感谢快速回复。我当前的实现使用了我构建的一个实用程序类,该类已经触发了一个异步WebRequest,现在我引入了一个线程池来管理触摸事件,并且刚刚意识到我将要进行双异步。我想了解我可能遇到的长期问题。疲惫似乎是最明显的。