请问类似这样的带参数的多线程应该怎么设计
请教类似这样的带参数的多线程应该如何设计?
比如网上下载有规律的图片,x、y分别是横向和纵向的号码,SaveName是拟存盘的文件名
private function GetPicture (x,y,SaveName)
Net.WebRequest.Create(PictURL)
...
bmp.save(...)
end function
然后用两个循环调用它:
for n=0 to 3
for m=0 to 3
GetPicture(m,n, "name " & m & "- " & n)
next
next
如何改成多线程的设计?就是同时下载4*4个图片?
对多线程头晕的要命,原理始终没明白,请大侠指导。
先行谢过。
------解决方案--------------------
WinForm 如下
Imports System
Imports System.Threading
Module Module1
Public Class Test
<MTAThread()> _
Shared Sub Main()
Dim n As Integer, m As Integer
Dim x As Integer, y As Integer, SaveName As String = " "
For n = 0 To 3
For m = 0 To 3
Dim threadWork As New DownLoadCtrl()
threadWork.SetParameters(x, y, SaveName)
Dim newThread As New Thread(AddressOf threadWork.DoWorking)
newThread.Start()
Next
Next
End Sub
End Class
Public Class DownLoadCtrl
Private x As Integer
Private y As Integer
Private savename As String
Sub New()
End Sub
Public Sub SetParameters(ByVal x, ByVal y, ByVal savename)
Me.x = x
Me.y = y
Me.savename = savename
End Sub
Sub DoWorking()
GetPicture(Me.x, Me.y, Me.savename)
End Sub
Private Function GetPicture(ByVal x, ByVal y, ByVal SaveName) As Boolean
...
Net.WebRequest.Create(PictURL)
...
bmp.save(...)
...
Return (True)
End Function
End Class
End Module
比如网上下载有规律的图片,x、y分别是横向和纵向的号码,SaveName是拟存盘的文件名
private function GetPicture (x,y,SaveName)
Net.WebRequest.Create(PictURL)
...
bmp.save(...)
end function
然后用两个循环调用它:
for n=0 to 3
for m=0 to 3
GetPicture(m,n, "name " & m & "- " & n)
next
next
如何改成多线程的设计?就是同时下载4*4个图片?
对多线程头晕的要命,原理始终没明白,请大侠指导。
先行谢过。
------解决方案--------------------
WinForm 如下
Imports System
Imports System.Threading
Module Module1
Public Class Test
<MTAThread()> _
Shared Sub Main()
Dim n As Integer, m As Integer
Dim x As Integer, y As Integer, SaveName As String = " "
For n = 0 To 3
For m = 0 To 3
Dim threadWork As New DownLoadCtrl()
threadWork.SetParameters(x, y, SaveName)
Dim newThread As New Thread(AddressOf threadWork.DoWorking)
newThread.Start()
Next
Next
End Sub
End Class
Public Class DownLoadCtrl
Private x As Integer
Private y As Integer
Private savename As String
Sub New()
End Sub
Public Sub SetParameters(ByVal x, ByVal y, ByVal savename)
Me.x = x
Me.y = y
Me.savename = savename
End Sub
Sub DoWorking()
GetPicture(Me.x, Me.y, Me.savename)
End Sub
Private Function GetPicture(ByVal x, ByVal y, ByVal SaveName) As Boolean
...
Net.WebRequest.Create(PictURL)
...
bmp.save(...)
...
Return (True)
End Function
End Class
End Module