Imports System.Threading Public Class Form1 Delegate Sub UpdateItemValueDelegate(ByVal index As Integer, ByVal value As Integer) Public UpdateListItem As UpdateItemValueDelegate = AddressOf UdateItemValue Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Add some values to the listbox for the example For i As Integer = 0 To 10 ListBox1.Items.Add(i.ToString()) Next End Sub Private Sub UdateItemValue(ByVal index As Integer, ByVal value As Integer) 'Set the new item's value ListBox1.Items(index) = value End Sub Private Sub CalculateNewValue(ByVal itemIndex As Integer) 'Calculate a new value for the given item and call the delegate to set the new item's value Dim value As Integer value = ListBox1.Items(itemIndex) * 5 If ListBox1.InvokeRequired Then Me.Invoke(UpdateListItem, {itemIndex, value}) End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Run a thread for each item in the list For i As Integer = 0 To ListBox1.Items.Count - 1 ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf CalculateNewValue), i) Next End Sub End Class
Thursday, December 2, 2010
Using the ThreadPool - An example as simple as possible
I just posted a code sample using the ThreadPool on a forum so I thought I could also post it here. Who knows, it might prove usefull to someone someday. Basically it simply demonstrate how to create and start new threads with the ThreadPool and how to use delegates with parameters. Here it is :
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment