Advertisement
filmee24

joblist and example

Dec 4th, 2012
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 2.29 KB | None | 0 0
  1. Public Class Form1
  2.  
  3.     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  4.         Dim k As New jobs
  5.  
  6.         k.AddJob("writedata", AddressOf writedata)
  7.         k.AddJob("p", AddressOf p)
  8.  
  9.         k.ApplyJobs()
  10.     End Sub
  11.  
  12.     Private Function p() As Boolean
  13.         MessageBox.Show("p")
  14.  
  15.         Return True
  16.     End Function
  17.  
  18.     Private Function writedata() As Boolean
  19.         MessageBox.Show("h")
  20.  
  21.         Return True
  22.     End Function
  23. End Class
  24.  
  25.  
  26. Public Class jobs
  27.  
  28.     Public Property Jobs As New List(Of job)
  29.  
  30.     Public Sub ApplyJobs()
  31.         For Each l In Jobs
  32.             If Not l.Invoked Then
  33.                 l.func().Invoke()
  34.                 l.Invoked = True
  35.             End If
  36.         Next
  37.     End Sub
  38.     Public Sub ApplyJob(name As String)
  39.         For Each l In From l1 In From l1 In Jobs Where l1.name = name Where Not l1.Invoked
  40.             l.func().Invoke()
  41.             l.Invoked = True
  42.         Next
  43.     End Sub
  44.     Public Sub ApplyJobs(ParamArray jobnames() As String)
  45.         For Each l In jobnames
  46.             ApplyJob(l)
  47.         Next
  48.     End Sub
  49.  
  50.     Public Sub AddJob(name As String, job As Func(Of Boolean))
  51.         Jobs.Add(New job() With {.name = name, .func = job, .Invoked = False})
  52.     End Sub
  53.     Public Sub AddJob(name As String)
  54.         AddJob(name, AddressOf DefaultJobHandler)
  55.     End Sub
  56.  
  57.     Public Sub RemovedJob(name As String)
  58.         For Each job In Jobs
  59.             If job.name = name Then
  60.                 Jobs.Remove(job)
  61.             End If
  62.         Next
  63.     End Sub
  64.     Public Sub RemoveJobs()
  65.         Jobs.Clear()
  66.     End Sub
  67.  
  68.     Public Sub CopyJob(job1 As String, job2 As String)
  69.         For Each job In Jobs
  70.             If job.name = job1 Then
  71.                 AddJob(job2, job.func)
  72.             End If
  73.         Next
  74.     End Sub
  75.     Public Sub CopyJob(job As String)
  76.         For Each j In Jobs
  77.             If j.name = job Then
  78.                 AddJob(job & "copied", j.func)
  79.             End If
  80.         Next
  81.     End Sub
  82.  
  83.     Private Function DefaultJobHandler() As Boolean
  84.         Return True
  85.     End Function
  86.  
  87. End Class
  88.  
  89. Public Class job
  90.     Public Property name As String
  91.     Public Property [func] As Func(Of Boolean)
  92.     Public Property Invoked As Boolean
  93. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement