Click here to Skip to main content
Click here to Skip to main content
Go to top

Multithreading with VB.NET - A beginner's choice

, 8 Aug 2006
Rate this:
Please Sign up or sign in to vote.
Multithreading is a technique by which you can increase the efficiency of your program by 100%. Everybody wants to apply multi-threading in their own applications. But for beginners, it's a bit difficult to apply multi-threading properly. But it's quite easy with VB.NET.

Sample Image - mutithreading_for_beginer.gif

Introduction

Hi friends,

This is my first article on Code-Project on the topic Multithreading in VB.NET.

Multithreading is a technique, by which you can increase efficiency of your program by 100%. Every body wants to apply multi threading in their own application. But for beginner it's a bit difficult to apply multi threading properly. I had the same problem, when I was going to use it in my application. That's why I am writing this article, that beginner can easily apply multi threading in their application. I am trying to make it as simple as possible.

I am not writing this article against some ones request. Rather than, I am writing this article, as I personally faced a big problem on this topic. It was so hard to find out a good solution or help on "How to apply threading on application".

After so much study, search on google and on other forums at last I was able to apply multi threading in my application.

Multi Threading is not a critical or complex thing to do. But many people don't now how to apply it. They can get sample code, but can't implement it on their own project. Or they face trouble, when they try to apply the code in their application.

I am not writing much code here. Because, if you download the source code, provided with this article, you will find comment through out each line of coding. So I am not repeating them again here

The heart of this project is the following line of coding

'The main mother class in .NET Framework to work with threading. 

Imports System.Threading  

'Creating Thread 
Dim objThreadClass As New clsThread(2, Me)
Dim objNewThread As New Thread(AddressOf objThreadClass.StartThread)
objNewThread.IsBackground = True
objNewThread.Start()
m_ThreadList.Item(1) = objNewThread 

'Receiving Message from thread
Public Sub ReceiveThreadMessage(ByVal ThreadIndex As Integer, _
                                ByVal Counter As Integer) 
    'do your work here depending on the return variables from the thread. 
End Sub 


'Sending Message from thread to the main application.
'First create a delegate (For details plz see the comments inside the codes) 

Private Delegate Sub NotifyMainWindow(ByVal ThreadIndex As Integer, _
                                      ByVal Counter As Integer)
'We need an object of this deletegate
Private m_NotifyMainWindow As NotifyMainWindow  

'Assign the pointer to the method of the main window to the delegate
m_NotifyMainWindow = AddressOf MainWindow.ReceiveThreadMessage 

'Create Argument List

ReDim m_Args(1)
m_Args(0) = m_ThreadIndex
m_Args(1) = m_Counter

'Call the notificaiton method on the main window by the delegate
m_MainWindow.Invoke(m_NotifyMainWindow, m_Args)

If this helps you, I'll be so happy

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Rakesh Mehta
Web Developer
India India
Hi,
This is Rakesh Mehta from India.
I am very very fond of programming (in any field).
I like to work on new technologies. Sometime, I face troubles, while looking for a new thing.
I am working as a Project Manager in Silicon Valley Infomedia Pvt Ltd. (India).
I'ld like to share all my new findings and solutions of problems with code project.

Comments and Discussions

 
QuestionDecent Intro Pinmembermajict21-Jun-14 11:21 
QuestionGreat starting point PinmemberCyrus-IRA17-Mar-14 13:26 
GeneralMy vote of 5 PinmemberJOE MIS11-Sep-13 19:18 
QuestionWhich language to use for GCS PinmemberMember 99565733-Apr-13 19:46 
GeneralMy vote of 1 Pinmembersandippatil4-Feb-13 19:07 
QuestionDraw graphics Pinmemberhari ram yadav22-Jan-13 20:30 
GeneralMy vote of 5 Pinmemberwayvirgo6-Jan-13 10:45 
GeneralMy vote of 5 PinmemberOsama Al Shammari21-Dec-12 7:33 
GeneralThanks! Pinmemberitcywel2-Aug-12 17:37 
GeneralMy vote of 5 PinmemberUltronX3-Jul-12 1:40 
GeneralMy vote of 5 Pinmembermanoj kumar choubey5-Mar-12 21:23 
QuestionTAPI PinmemberMember 79538385-Jan-12 6:28 
GeneralMy vote of 5 PinmemberSandro7022-Nov-11 23:40 
QuestionConfused: explain Invoking the main window.. PingroupArchie_dev2-Jul-11 21:32 
Generalgreat example PinmemberMember 116050224-May-11 7:49 
GeneralMy vote of 5 PinmemberMember 466330528-Mar-11 23:25 
GeneralButton4,6 and 8 code errors PinmemberMember 384809418-Mar-11 5:54 
GeneralRe: Button4,6 and 8 code errors Pinmemberpodman@guru25-Nov-11 5:18 
GeneralMy vote of 5 PinmemberNIRMAL UPADHYAY28-Feb-11 22:12 
GeneralMy vote of 5 PinmemberMember 14582303-Jan-11 22:03 
GeneralMy vote of 5 Pinmembersandeep00773417-Nov-10 8:38 
GeneralMy vote of 3 Pinmemberv65j9-Jul-10 18:37 
GeneralMy vote of 1 Pinmembershaoun10005-Dec-09 14:53 
GeneralRe: Multithreading PinmemberRakesh Mehta24-Nov-09 20:11 
GeneralRe: multihread using ado.net PinmemberRakesh Mehta16-Nov-09 3:49 
GeneralRe: multihread using ado.net PinmemberRakesh Mehta15-Nov-09 23:39 
GeneralRe: multihread using ado.net PinmemberRakesh Mehta16-Nov-09 1:40 
GeneralWell done! PinmemberEl_Charles_The_Awesome21-Jul-09 10:53 
GeneralPassing String instead of a Counter Pinmemberchrissequeira24-May-09 21:11 
GeneralRe: Passing String instead of a Counter PinmemberRakesh Mehta24-May-09 21:23 
GeneralRe: Passing String instead of a Counter Pinmemberchrissequeira24-May-09 21:48 
GeneralRe: Passing String instead of a Counter PinmemberRakesh Mehta24-May-09 22:16 
GeneralRe: Passing String instead of a Counter Pinmemberchrissequeira24-May-09 23:29 
GeneralRe: Passing String instead of a Counter PinmemberRakesh Mehta24-May-09 23:33 
GeneralRe: Passing String instead of a Counter Pinmemberchrissequeira24-May-09 23:56 
GeneralRe: Passing String instead of a Counter Pinmemberchrissequeira25-May-09 5:30 
GeneralRe: Passing String instead of a Counter PinmemberRakesh Mehta25-May-09 7:55 
GeneralGetting an Exception in visual studio2008 when your code is executed. Pinmemberrajath888813-Feb-09 18:28 
GeneralRe: Getting an Exception in visual studio2008 when your code is executed. PinmemberRakesh Mehta13-Feb-09 18:46 
GeneralRe: Getting an Exception in visual studio2008 when your code is executed. Pinmemberrajath888813-Feb-09 18:50 
GeneralRe: Getting an Exception in visual studio2008 when your code is executed. Pinmemberrajath888813-Feb-09 19:38 
GeneralRe: Getting an Exception in visual studio2008 when your code is executed. PinmemberRakesh Mehta13-Feb-09 19:42 
GeneralA doubt in the concept of passing parameters in multithreading Pinmemberkrithika Subramanian15-Dec-08 21:59 
GeneralRe: A doubt in the concept of passing parameters in multithreading PinmemberRakesh Mehta16-Dec-08 2:37 
GeneralRe: A doubt in the concept of passing parameters in multithreading Pinmemberkrithika Subramanian16-Dec-08 17:58 
GeneralRe: A doubt in the concept of passing parameters in multithreading Pinmemberkrithika Subramanian17-Dec-08 20:39 
GeneralRe: A doubt in the concept of passing parameters in multithreading PinmemberRakesh Mehta18-Dec-08 18:46 
GeneralRe: A doubt in the concept of passing parameters in multithreading Pinmemberharimv200226-Sep-12 20:56 
QuestionGoto?!? Pinmembereyeball_200314-Oct-08 1:32 
GeneralSuperb :) Pinmemberrohits_rods24-Sep-08 15:25 
Hi Rakesh,
Luved it ....
I am a beginer to VB.net ...
Was trying to access a listview on a form after starting a thread .
Tried hard and couldnt find any help anywhere . First, I thought as in VB.net, it all about object, I am not able to access a object in one form from another form.
Tried searchign on the net, but for my dismay .. there was nothing on the Internet.
I nearly lost hopes when one of my friend told me thread dont allow to access a text or list view ..
 
I tried hard .. but no solution ... UNTIL I got ur code ..
 
It was superb, well explained ... and everyhting that a beginner needs.. Smile | :)
 
Today I understand, why Indian economy has improved becoz of IT. Its becoz of people like YOU.
 
hats Off buddy ... thanks heaps ..
Please keep posting articles like these so that people like me can improve in .net.
 
Thanks again ..
 
rodney

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web03 | 2.8.140905.1 | Last Updated 9 Aug 2006
Article Copyright 2006 by Rakesh Mehta
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid