To start a thread

  • Thread starter Thread starter juan
  • Start date Start date
J

juan

How can I do to start a thread. I tried everything... but it had no work.
Any solution?
It is a Sub working with a Timer control.
I want to do two tasks at the same time (more or less for a minute).
Visual Basic 2005.
Thanks.
 
juan said:
How can I do to start a thread. I tried everything... but it had no
work. Any solution?
It is a Sub working with a Timer control.
I want to do two tasks at the same time (more or less for a minute).
Visual Basic 2005.
Thanks.

Which of the many links handling this topic do you want us to post? ;-)
Have you already had a look in the threading topics in the VB and
Framework docs? If you have a specific problem, which is it?

(sry, can't send a link because the online MSDN lib TOC is all Italian
now!??!)


Armin
 
How can I do to start a thread. I tried everything... but it had no work.
Any solution?
It is a Sub working with a Timer control.
I want to do two tasks at the same time (more or less for a minute).
Visual Basic 2005.
Thanks.

Hi,
This could be a basic example to run a seperate thread:

Imports System.threading
Module Module1

Sub Main()
Dim mythread As New Thread(AddressOf threadrun)
mythread.Start()
End Sub

Sub threadrun()
For x As Integer = 0 To 10
Console.WriteLine("this is a thread!")
Next
Console.ReadLine()
End Sub

End Module


Also check out MSDN for more thread class methods / properties:
http://msdn.microsoft.com/en-us/library/system.threading.thread_members.aspx
msdn.microsoft.com/en-us/library/ms951089.aspx
http://msdn.microsoft.com/en-us/library/system.threading.thread.aspx

Thanks,

Onur Güzel
 
I think that the problem is that I need to associate one element (for play
music) to the thread ("t"), and I don't know how.
I have tried to give to "t.start()" an argument, but Visual Basic refuse it.
It is an error.
Any other solution?
Thanks.
 
You technically can use a timer.

Start the timer enabled = false
set the interval to a second

the first line of the timer put timer.enabled = false

and the timer will run ' turn itself off ' but the sub finishes running.

What are you trying to do in the other thread?

Its a very dirty way of doing it, but it does do the trick.
I did that once, as i dont fully understand how to do threads on my own yet,
and ill come back and learn them as they come.

Miro
 
I think that the problem is that I need to associate one element (for play
music) to the thread ("t"), and I don't know how.
I have tried to give to "t.start()" an argument, but Visual Basic refuse it.
It is an error.
Any other solution?
Thanks.

First off, google about sending parameters to new threads, as of 2.0
you can do this without much trouble once you get used to the call
structure.

The other thing you could look at, which is now my personal favorite
for managing threads, is to create a delegate that I will use to
invoke a method asynchronously. I won't explain it here, you're sure
to find plenty of articles on it on the web which will explain it much
better than I would.

Thanks,

Seth Rowe [MVP]
 
Now I think that I have always had it. However the thread that plays music
seems to interrupt by the principal thread (the program thread). It is a
program for text processing.
Thanks in any case.
 
Now I think that I have always had it. However the thread that plays music
seems to interrupt by the principal thread (the program thread). It is a
program for text processing.
Thanks in any case.

I have had very good luck with the following methods:
1) using a timer to start the action, it is messy but it does work.
Make sure you put the minimum amount of work in the timer process. I
have used timers to fire delegates so that a longer starting process
doesn't conflict with the timer.
2) If at all possible, use a discreet object for your separate thread.
3) To manage synchronization and scope, I have often passed a
reference to the controlling (dispatching) thread to the object that
will operate separately.
4) For managed communication you use delegates to raise events from
the child (free threaded) object which lets the free thread
communicate with the sender.
if you feel more brave:
5) It is very instructional to look at thread pooling (I use it for an
application I have writes application files for Progress and then
launches them maintaining 10-15 running instances at a time.) I
mention this as you indicate doing background processing.
6) Thread callbacks, even if you choose not to use them, are worth
understanding if you are going to adventure into the maddening world
of threading.

You may want to check out an erarlier post I had at
http://groups.google.com/group/microsoft.public.dotnet.languages.vb/msg/ee5acbf0ae15e871
for some code and links to MSDN explanations.

Hope this helps.
Viva la VB
 
Back
Top