Threads

DF deefriend at ymail.com
Wed Nov 19 11:53:04 PST 2008


Sean Kelly Wrote:

> 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

That's what I get when I try to compile the code you've posted.

module thread cannot read file 'core\thread.d'



More information about the Digitalmars-d mailing list