469,313 Members | 2,206 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,313 developers. It's quick & easy.

To start a thread

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.

Jun 27 '08 #1
9 1291
On May 15, 12:41 pm, juan <j...@discussions.microsoft.comwrote:
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/libr...d_members.aspx
msdn.microsoft.com/en-us/library/ms951089.aspx
http://msdn.microsoft.com/en-us/libr...ng.thread.aspx

Thanks,

Onur Güzel
Jun 27 '08 #2
"juan" <ju**@discussions.microsoft.comschrieb
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

Jun 27 '08 #3
What have you tried ? What doesn't work ? I's no sue for us to give you some
code you already tried.

As starting itself is quite simple I believe this is something more subtle
that just starting the thread (you have a problem when updating the UI , do
you ?).

Depending on what you want to do you may want also to check the
BackgroundWorker class...

--
Patrice

"juan" <ju**@discussions.microsoft.coma écrit dans le message de groupe de
discussion : FE**********************************@microsoft.com...
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.
Jun 27 '08 #4
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.

"juan" wrote:
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.
Jun 27 '08 #5
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

"juan" <ju**@discussions.microsoft.comwrote in message
news:FE**********************************@microsof t.com...
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.
Jun 27 '08 #6
And you play the sound file using which method ? What kind of file is this
(MIDI, WAV ?) In most cases it should be handled for you as playing a sound
asynchronously is what you want most of the time...

Try for example :
http://msdn.microsoft.com/en-us/library/cf1shcah.aspx

Note that the AudioPlayMode.Background option ("Plays the sound in the
background. The calling code continues to execute.").

It's best to always provide an description of what you are trying to do
rather than just how (in case someone would have another better/simpler way
to do the same thing).

--
Patrice

"juan" <ju**@discussions.microsoft.coma écrit dans le message de groupe de
discussion : F0**********************************@microsoft.com...
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.

"juan" wrote:
>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.
Jun 27 '08 #7
On May 15, 10:29 am, juan <j...@discussions.microsoft.comwrote:
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.

"juan" wrote:
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.
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]
Jun 27 '08 #8
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.

"juan" wrote:
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.

"juan" wrote:
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.
Jun 27 '08 #9
On May 16, 5:07 am, juan <j...@discussions.microsoft.comwrote:
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.

"juan" wrote:
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.
"juan" wrote:
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.
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/micro...5acbf0ae15e871
for some code and links to MSDN explanations.

Hope this helps.
Viva la VB
Jun 27 '08 #10

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

16 posts views Thread by Serdar Kalaycý | last post: by
5 posts views Thread by taylorjonl | last post: by
37 posts views Thread by ales | last post: by
8 posts views Thread by Carl Heller | last post: by
reply views Thread by suresh191 | last post: by
reply views Thread by harlem98 | last post: by
1 post views Thread by Geralt96 | last post: by
reply views Thread by harlem98 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.