为什么当UI线程不再被阻塞时,以下代码在5秒钟后执行WebRequest? Thread.Sleep
在UI线程中,而WebRequest的实例化和调用都发生在ThreadPool的线程内。
Loaded += (sender, args) => {
for (int i = 0; i < 5; i++) {
ThreadPool.QueueUserWorkItem(state => {
var request = WebRequest.CreateHttp("http://google.com");
request.BeginGetResponse(ar => Debug.WriteLine("Request finished"), null);
});
Thread.Sleep(1000);
}
};
当UI线程被阻止时,我应该编写什么代码才能在后台线程中执行WebRequest?
编辑: ...更具体地说。 为什么此请求在后台线程中运行10秒钟后会被执行?
Loaded += (sender, args) => {
ThreadPool.QueueUserWorkItem(state => {
var request = WebRequest.CreateHttp("http://google.com");
request.BeginGetResponse(ar => Debug.WriteLine("Request finished"), null);
});
Thread.Sleep(10000);
};