使用Webrequest /响应

时间:2014-04-17 22:23:57

标签: vb.net multithreading visual-studio-2012

有人可以向我解释在这种情况下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不冻结,我还需要在线程上运行...

我知道垃圾收集器存在,但在这种情况下我认为这不是让他清理的情况,因为它是创建它的线程的请求

0 个答案:

没有答案