www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - What is the canonical way to subclass Thread and make it pauseable?

reply Enjoys Math <enjoysmath gmail.com> writes:
How do you write a pauseable Thread?

Thanks.
Sep 17
parent Enjoys Math <enjoysmath gmail.com> writes:
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.
Sep 17