|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Creating an array of objects when the object type is not known at design timeI'm trying to create a generic threading application where you can pass in any object and a number of threads, most of it is working but I'm having trouble creating multiple instances of the object handed down. The code that I've supplied should simply create msgbox with 10 different messages, but it the ProcessID gets incremented for all the threads everytime a new object is created. Can anyone point me in the right direction..... Thanks in advance Sub Main() Dim myThreadRunner As New Threader.Threader Dim obj As New inherSimpleObj myThreadRunner.ThreadRunner(10, obj) End Sub ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Public Class Threader Public Function ThreadRunner(ByVal nT As Integer, ByVal myProcess As Object) Dim myobj As Object myobj = myProcess Dim t(nT - 1) As Threading.Thread Dim stiThreads(nT - 1) As clsSimpleObject Dim X As Integer = 0 Do Until X = (nT) Dim myNewObj As New object myNewObj = DirectCast(myProcess, clsSimpleObject) stiThreads(X) = myNewObj stiThreads(X).ProcessID = X + 1 t(X) = New Threading.Thread(AddressOf stiThreads(X).Execute) X += 1 Loop For Each thrd As Threading.Thread In t thrd.Start() System.Threading.Thread.Sleep(100) Next End Function End Class ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Public Class inherSimpleObj Inherits clsSimpleObject Overrides Sub Execute() MsgBox(ProcessID) End Sub End Class ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Public Class clsSimpleObject Private PID As Integer Overridable Sub Execute() End Sub Public Property ProcessID() As Integer Get Return PID End Get Set(ByVal Value As Integer) PID = Value End Set End Property End Class Stuart,
Did you visit this newsgroup before and have read some question. In my idea comes your question almost one or two times a day. The answers are mostly in it shortest format, it is not easily to get to the UI in a workerthread. I know it is not much maybe it helps having this information. Cor Show quoteHide quote "StuartJ" <stuart.johnst***@egg.com> schreef in bericht news:1152008347.965866.111410@h44g2000cwa.googlegroups.com... > Hi, > > I'm trying to create a generic threading application where you can pass > in any object and a number of threads, most of it is working but I'm > having trouble creating multiple instances of the object handed down. > > The code that I've supplied should simply create msgbox with 10 > different messages, but it the ProcessID gets incremented for all the > threads everytime a new object is created. > > Can anyone point me in the right direction..... > > Thanks in advance > > > Sub Main() > Dim myThreadRunner As New Threader.Threader > Dim obj As New inherSimpleObj > myThreadRunner.ThreadRunner(10, obj) > End Sub > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Public Class Threader > Public Function ThreadRunner(ByVal nT As Integer, ByVal myProcess As > Object) > > Dim myobj As Object > myobj = myProcess > > Dim t(nT - 1) As Threading.Thread > Dim stiThreads(nT - 1) As clsSimpleObject > Dim X As Integer = 0 > Do Until X = (nT) > Dim myNewObj As New object > myNewObj = DirectCast(myProcess, clsSimpleObject) > stiThreads(X) = myNewObj > stiThreads(X).ProcessID = X + 1 > t(X) = New Threading.Thread(AddressOf stiThreads(X).Execute) > X += 1 > Loop > > For Each thrd As Threading.Thread In t > thrd.Start() > System.Threading.Thread.Sleep(100) > Next > End Function > End Class > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Public Class inherSimpleObj > Inherits clsSimpleObject > Overrides Sub Execute() > MsgBox(ProcessID) > End Sub > End Class > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Public Class clsSimpleObject > Private PID As Integer > > Overridable Sub Execute() > > End Sub > > Public Property ProcessID() As Integer > Get > Return PID > End Get > Set(ByVal Value As Integer) > PID = Value > End Set > End Property > > End Class >
Is microsoft awaring VB.Net too hard to maintain?
Class used by multiple threads to write to Table Override Printer Margins (?) text/xml reporting service error Visual Studio .NET 2005 using Web Application Project Retrieving the System date and time settings DataGridView column sort WEB ENABLING a win application: best approach avoiding - File download-security warning window when using response.writefile(filepath) SQL update statment, using ACCESS yes/no |
|||||||||||||||||||||||