ASP.NET 3.5 VB.NETパラメータを使用したASP.NETスレッド?
10種類のURLのそれぞれからPNGイメージを取得したいコードがあります。
私は、各PNGを取得するのに最大2〜3秒かかることがあるので、同時にすべてを取得することが最善であると考えました。
PNGフェッチごとにスレッドを作成するために、以下のコードを調整して助けてもらえますか?私は、1時間ほど前と後の試しで、何か助けを望んでいた多くのスレッドのものをやっていない。 TIA
Imports Microsoft.VisualBasic
Imports System.Collections.Generic
Imports System.Drawing
Imports System.Drawing.Drawing2D
Public Class TestImageSuggestionsCreate
Dim intClsWidthMaximumAllowed As Integer = 600
Dim intClsHeightMaximumAllowed As Integer = 400
Dim intClsWidthMinimumAllowed As Integer = 200
Dim intClsHeightMinimumAllowed As Integer = 200
Dim strClsImageOriginalURL As String = ""
Dim lstClsWebsitesImageURLs As New List(Of String)
Public Function fWebsitesImageSuggestionsCreate() As Boolean
'Load URLS strings into class List variable: lstClsWebsitesImageURLs
fWebsitesImageURLSuggestionsGet()
'Go through each URL and download image to disk
For Each strURL1 As String In lstClsWebsitesImageURLs
'This needs to be done in a separate thread
'(Up to 10 threads):
fAddImageIfSuitable(strURL1)
Next
End Function
Private Function fWebsitesImageURLSuggestionsGet() As Boolean
Dim strURL As String = ""
strURL = "https://upload.wikimedia.org/wikipedia/en/thumb/f/f7/Sheraton_Hotels.svg/1231px-Sheraton_Hotels.svg.png"
lstClsWebsitesImageURLs.Add(strURL)
strURL = "http://wall--art.com/wp-content/uploads/2014/10/sheraton-logo-png.png"
lstClsWebsitesImageURLs.Add(strURL)
'Up to 10 strURL items
'.............
End Function
Private Function fAddImageIfSuitable(ByVal strImageURL As String) As Boolean
'Get bitmap from URL
Dim btmImage1 As Bitmap = New Bitmap(fGetStreamBitmap(strImageURL))
'Don't add if image too small
If btmImage1.Width < intClsWidthMinimumAllowed Or _
btmImage1.Height < intClsHeightMinimumAllowed Then
Exit Function
End If
'Save image to disk here
'..............
End Function
Private Function fGetStreamBitmap(ByVal strURL As String) As Bitmap
Try
Dim request As System.Net.WebRequest = System.Net.WebRequest.Create(strURL)
Dim response As System.Net.WebResponse = request.GetResponse()
Dim responseStream As System.IO.Stream = response.GetResponseStream()
Dim btmBitmap1 As New Bitmap(responseStream)
Return btmBitmap1
Finally
End Try
End Function
End Class
感謝を返送するための非同期メソッド(ディスクにイメージをダウンロードするためのURLを処理するのと同じ方法) 待機を呼び出して、各タスクのタスクのアレイプロジェクトはASP.NET 3.5にあります。 – user1946932
@ user1946932 - これは初めに知っておいて良かったでしょう。 – Enigmativity