IneedaSmoke
Active member
- Joined
- Mar 4, 2008
- Messages
- 26
- Programming Experience
- Beginner
Hey all. Trying to figure out how to make applications more responsive. I haven't been able to figure out how to make my applications stop having the "Not Responding" business.
I've tried delegates and thread sleeping to no avail
I don't know if I'm just placing them wrong or what, so anywho here is a little test application for anyone who would like to make suggestions:
TIA
I've tried delegates and thread sleeping to no avail
VB.NET:
Imports System.Threading
Public Class Form1
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
Dim myProcCounter As New delProcCounter(AddressOf procCounter)
myProcCounter.Invoke()
End Sub
Private Sub procCounter()
Dim alStartingNumbers As New ArrayList
alStartingNumbers = generateALList()
For Each item In alStartingNumbers
Dim myDoThis As New classDoThis
myDoThis.startingNumber = item
Dim myThread = New Thread(AddressOf myDoThis.procCounter)
AddHandler myDoThis.updateInfo, AddressOf msgEventHandler
myThread.Start()
'Thread.CurrentThread.Sleep(10)
Next
End Sub
Public Delegate Sub delProcCounter()
Public Sub msgEventHandler(ByVal msg As String)
If Me.InvokeRequired Then
Dim delegate1 As New delUpdateTB(AddressOf msgEventHandler)
Dim parameters(0) As String
parameters(0) = msg.ToString
Me.Invoke(delegate1, parameters)
Else
Dim myDel As delUpdateTB
myDel = AddressOf updateTB
myDel.Invoke(msg.ToString)
End If
End Sub
Public Delegate Sub delUpdateTB(ByVal msg As String)
Private Sub updateTB(ByVal msg As String)
tbOutput.AppendText(msg)
'MsgBox(msg)
End Sub
Private Function generateALList() As ArrayList
Dim al As New ArrayList
Dim i As Integer = 0
For i = 0 To 500
al.Add(i)
Next
Return al
End Function
End Class
VB.NET:
Public Class classDoThis
Public startingNumber As Double = 0
Public Sub procCounter()
Dim i As Integer = 0
For i = 1 To 10
startingNumber = startingNumber + i
Try
RaiseEvent updateInfo(startingNumber.ToString & vbCrLf)
Catch ex As Exception
MsgBox(ErrorToString)
End Try
Next
End Sub
Public Event updateInfo(ByVal myNumber As String)
End Class
TIA