Modernes C++ programmieren

Okt 23, 2024

lst-0994-godb.cpp

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// 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
}