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

Reply via email to