Shows how to use xtd::threading::thread class.
#include <xtd/xtd>
auto main() -> int {
constexpr auto max_number = 10;
println("(thread {}) main -> start", thread::current_thread().managed_thread_id());
auto worker = thread::start_new([&] {
for (auto count = 1; count <= max_number; ++count) {
println(" (thread {}) -> count {}", thread::current_thread().managed_thread_id(), count);
thread::sleep(100_ms);
}
});
println("(thread {}) main -> sleep(200_ms)", thread::current_thread().managed_thread_id());
thread::sleep(200_ms);
println("(thread {}) main -> join thread {}", thread::current_thread().managed_thread_id(), worker.managed_thread_id());
worker.join();
println("(thread {}) main -> stop", thread::current_thread().managed_thread_id());
}