digitalmars.D.learn - What is the canonical way to subclass Thread and make it pauseable?
- Enjoys Math (2/2) Sep 17 2017 How do you write a pauseable Thread?
- Enjoys Math (38/40) Sep 17 2017 This seems to work:
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 2017