Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class Form1
- Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
- Dim k As New jobs
- k.AddJob("writedata", AddressOf writedata)
- k.AddJob("p", AddressOf p)
- k.ApplyJobs()
- End Sub
- Private Function p() As Boolean
- MessageBox.Show("p")
- Return True
- End Function
- Private Function writedata() As Boolean
- MessageBox.Show("h")
- Return True
- End Function
- End Class
- Public Class jobs
- Public Property Jobs As New List(Of job)
- Public Sub ApplyJobs()
- For Each l In Jobs
- If Not l.Invoked Then
- l.func().Invoke()
- l.Invoked = True
- End If
- Next
- End Sub
- Public Sub ApplyJob(name As String)
- For Each l In From l1 In From l1 In Jobs Where l1.name = name Where Not l1.Invoked
- l.func().Invoke()
- l.Invoked = True
- Next
- End Sub
- Public Sub ApplyJobs(ParamArray jobnames() As String)
- For Each l In jobnames
- ApplyJob(l)
- Next
- End Sub
- Public Sub AddJob(name As String, job As Func(Of Boolean))
- Jobs.Add(New job() With {.name = name, .func = job, .Invoked = False})
- End Sub
- Public Sub AddJob(name As String)
- AddJob(name, AddressOf DefaultJobHandler)
- End Sub
- Public Sub RemovedJob(name As String)
- For Each job In Jobs
- If job.name = name Then
- Jobs.Remove(job)
- End If
- Next
- End Sub
- Public Sub RemoveJobs()
- Jobs.Clear()
- End Sub
- Public Sub CopyJob(job1 As String, job2 As String)
- For Each job In Jobs
- If job.name = job1 Then
- AddJob(job2, job.func)
- End If
- Next
- End Sub
- Public Sub CopyJob(job As String)
- For Each j In Jobs
- If j.name = job Then
- AddJob(job & "copied", j.func)
- End If
- Next
- End Sub
- Private Function DefaultJobHandler() As Boolean
- Return True
- End Function
- End Class
- Public Class job
- Public Property name As String
- Public Property [func] As Func(Of Boolean)
- Public Property Invoked As Boolean
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement