Re: What is the canonical way to subclass Thread and make it pauseable?

2017-09-17 Thread Enjoys Math via Digitalmars-d-learn

On Sunday, 17 September 2017 at 19:57:05 UTC, Enjoys Math wrote:


How do you write a pauseable Thread?

Thanks.



This seems to work:


module data_rates_thread;

import core.thread;
import std.datetime;


class DataRatesThread : Thread
{
private:
uint loopSleep;
bool paused;

public:
this(uint loopSleep) {
super(& run);
this.loopSleep = loopSleep;
paused = true;
}

void pause() {
paused = true;
}

void start() {
paused = false;
super.start();
}

private:
void run() {
import std.stdio;
int k = 0;

while (! paused) {
writeln(k);
k ++;
if (loopSleep != 0)
sleep(dur!"msecs"(loopSleep));
}


}
}


Which is not the best way to pause and resume, but it works for 
my application.


What is the canonical way to subclass Thread and make it pauseable?

2017-09-17 Thread Enjoys Math via Digitalmars-d-learn


How do you write a pauseable Thread?

Thanks.