September 17, 2017 What is the canonical way to subclass Thread and make it pauseable? | ||||
---|---|---|---|---|
| ||||
How do you write a pauseable Thread? Thanks. |
September 17, 2017 Re: What is the canonical way to subclass Thread and make it pauseable? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Enjoys Math | 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.
|
Copyright © 1999-2021 by the D Language Foundation