Finding a system.threading.timer from its ToString and make dispose of it in VB.NET

Hi!

I am writing an application for scheduling database queries, dtsjobs and store procedures. I am launching a lot of Timer objects. I store their ToString() sentences into a string variable which I later save on my SQL Server. However I do need to be able to dispose all these System.Threading.Timer in the event of a rescheduling task being launched by a user.

In short:

How do I find a specific Timer from its ToString. Or any ideas on how to do this otherwise?


Cheers,
Peter
Peter_AnkarlouAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
Bob LearnedConnect With a Mentor Commented:
If you want to get a reference to a timer by name, then the collection can help you retrieve that:

Dim timerNeeded As Timer = myTimerCollection(name)

Bob
0
 
Bob LearnedCommented:
I think I always have to ask why, before anything else, someone chooses to do very complicated things.

Why would you want to do this?

Bob
0
 
planoczCommented:
You need something like this....

Imports System.Threading

    Private oThread As Thread   '<----------- can make it global

        If oThread.IsAlive = True Then
            oThread.abort
        Else
           'Do something esle
        End If
0
Take Control of Web Hosting For Your Clients

As a web developer or IT admin, successfully managing multiple client accounts can be challenging. In this webinar we will look at the tools provided by Media Temple and Plesk to make managing your clients’ hosting easier.

 
Peter_AnkarlouAuthor Commented:
Why Bob?
That's truly a good question. :-)

planocz:

The thing is I am using System.Threading.Timer and I want to be able to kill it from another class in my app. What happens if I uses

    Public Function KillEvent(ByVal strTimerName As String) As String

        Dim x As Integer
        Dim prc() As Process
        prc = Process.GetProcesses
        For x = 0 To UBound(prc)
            If prc(x).ProcessName = strTimerName Then
                Try
                    prc(x).Kill()
                    Return prc(x).ProcessName & " killed."
                Catch
                    Return "Unable to terminate process"
                Finally
                End Try
            End If
        Next x

Which I have taken from this web-site. Will it kill my Timer-thread or kill the whole app? What is the difference between to kill a process and Timer.Dispose?
I cannot use Timer.Dispose since have have many timers? I want to kill em all (as Metallica would say).
0
 
planoczCommented:
just looking at it I think it will work,
 but you will know through testing and debugging.
0
 
gregoryyoungConnect With a Mentor Commented:
that will kill a process not a thread ...

why not just hold references to your timers in a collection that you can search through for a given one ...

if you want to kill em all

foreach timer in mytimercollection
    timer.dispose()
end for
0
All Courses

From novice to tech pro — start learning today.