Threads
Sean Kelly
sean at invisibleduck.org
Wed Nov 19 11:24:56 PST 2008
DF wrote:
> Spacen Jasset Wrote:
>
>> DF wrote:
>>> /**
>>> * Testing.
>>> */
>>> module Test;
>>>
>>> import std.thread;
>>> import std.stdio;
>>>
>>> class DerivedThread : Thread {
>>>
>>> this() {
>>> super(&run);
>>> }
>>>
>>> private :
>>> int run() {
>>> writefln("Derived thread running.\n" );
>>> return 0;
>>> }
>>> }
>>>
>>> void main() {
>>> Thread derived = new DerivedThread();
>>> derived.start();
>>> }
>>>
>>> This code makes no output. Why?
>> Not quite sure, but you could try derived.wait() in main to wait for the
>> thread to finish.
> It won't help. And method wait() is hidden. I'm using D 2.0.
If you're using D 2.0 then that shouldn't even compile. In fact,
std.thread doesn't exist any longer. Try:
module Test;
import core.thread;
import std.stdio;
class DerivedThread : Thread {
this() {
super(&run);
}
private:
void run() {
writefln( "Derived thread running." );
}
}
void main() {
Thread derived = new DerivedThread();
derived.start();
}
Note that if you set "Thread.isDaemon = true" then you will need to
join() the thread to wait for it to complete before the app exits.
Sean
More information about the Digitalmars-d
mailing list