有人可以向我解释在这种情况下webrequest / response的“运作”,我有这个功能:
Public Shared Function DoRequests(ByVal url As String) As String
Dim sr As StreamReader = Nothing
Try
Dim request As WebRequest = WebRequest.Create(url)
Dim response As WebResponse = request.GetResponse()
sr = New StreamReader(response.GetResponseStream())
Return sr.ReadToEnd()
Catch
Return Nothing
Finally
If sr IsNot Nothing Then sr.Dispose()
End Try
End Function
为什么.net 2.0使用此用法创建5个线程来运行请求?:
DoRequests("HTTPS LINK HERE")
问题如上所述,.net在这里特别创建5个线程:
Dim request As WebRequest = WebRequest.Create(url)
和2:
Dim response As WebResponse = request.GetResponse()
过程很快但线程没有得到清理..至少不是马上,我问为什么......或者是否有一种“更好”的方式做到这一点,因为虽然我理解为什么2创建线程,我不明白为什么简单的请求/响应需要5个,如果我想确保UI不冻结,我还需要在线程上运行...
我知道垃圾收集器存在,但在这种情况下我认为这不是让他清理的情况,因为它是创建它的线程的请求