Advertisement
Robomatics

Threading

Jan 10th, 2013
1,385
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 2.72 KB | None | 0 0
  1. Public Class Form1
  2.  
  3.     Dim amount As Integer = 30
  4.     Dim pics(amount) As Bitmap
  5.     Dim sw As Stopwatch = New Stopwatch()
  6.  
  7.     Dim t As Threading.Thread
  8.  
  9.     'For
  10.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  11.  
  12.         sw.Restart()
  13.         sw.Start()
  14.  
  15.         For i = 0 To amount - 1
  16.             picset(i)
  17.         Next
  18.  
  19.         Label1.Text = sw.ElapsedMilliseconds
  20.  
  21.     End Sub
  22.  
  23.     'Parallel.For
  24.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  25.  
  26.         sw.Restart()
  27.         sw.Start()
  28.  
  29.         Threading.Tasks.Parallel.For(0, amount - 1, AddressOf picset)
  30.  
  31.         Label2.Text = sw.ElapsedMilliseconds
  32.  
  33.     End Sub
  34.  
  35.     'Time waster
  36.     Private Sub picset(ByVal i As Integer)
  37.  
  38.         pics(i) = New Bitmap(640, 480)
  39.  
  40.         For i2 = 0 To pics(i).Width - 1
  41.             For i3 = 0 To pics(i).Height - 1
  42.                 pics(i).SetPixel(i2, i3, Color.Blue)
  43.             Next
  44.         Next
  45.  
  46.     End Sub
  47.  
  48.     'Background worker
  49.     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  50.  
  51.         sw.Restart()
  52.         sw.Start()
  53.  
  54.         BackgroundWorker1.RunWorkerAsync()
  55.  
  56.     End Sub
  57.     Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
  58.  
  59.         For i = 0 To amount - 1
  60.             picset(i)
  61.         Next
  62.  
  63.     End Sub
  64.     Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
  65.         Label3.Text = sw.ElapsedMilliseconds
  66.     End Sub
  67.  
  68.     'Threadpool
  69.     Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
  70.  
  71.         Threading.ThreadPool.QueueUserWorkItem(AddressOf callthread1)
  72.  
  73.     End Sub
  74.     Private Sub callthread1(ByVal stateInfo As Object)
  75.  
  76.         sw.Restart()
  77.         sw.Start()
  78.  
  79.         For i = 0 To amount - 1
  80.             picset(i)
  81.         Next
  82.  
  83.         MsgBox(sw.ElapsedMilliseconds)
  84.  
  85.     End Sub
  86.  
  87.     'Thread
  88.     Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
  89.  
  90.         sw.Restart()
  91.         sw.Start()
  92.  
  93.         t = New Threading.Thread(AddressOf callthread2)
  94.         t.IsBackground = False
  95.         t.SetApartmentState(Threading.ApartmentState.MTA)
  96.         t.Start()
  97.  
  98.     End Sub
  99.     Private Sub callthread2()
  100.  
  101.         For i = 0 To amount - 1
  102.             picset(i)
  103.         Next
  104.  
  105.         MsgBox(sw.ElapsedMilliseconds)
  106.  
  107.     End Sub
  108.  
  109. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement