lst-0994-book.cpp
// https://godbolt.org/z/6cqd7Tsae
struct HintergrundAufgabe {
void operator()(std::stop_token st) const { // Token fürs Kommunizieren
aufgabe1();
if(st.stop_requested()) return;
aufgabe2();
if(st.stop_requested()) return;
aufgabe3();
}
};
int main() {
HintergrundAufgabe hintergrundAufgabe{};
std::jthread meinThread{ hintergrundAufgabe };
std::this_thread::sleep_for(std::chrono::milliseconds(100)); // warte 100ms
meinThread.request_stop(); // bitte den Thread, sich zu beenden
}