What is the canonical way to subclass Thread and make it pauseable?
Enjoys Math
enjoysmath at gmail.com
Sun Sep 17 20:11:11 UTC 2017
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.
More information about the Digitalmars-d-learn
mailing list