#include <xtd/collections/generic/list>
#include <xtd/threading/manual_reset_event>
#include <xtd/threading/thread>
#include <xtd/console>
#include <xtd/startup>
namespace manual_reset_event_example {
class program {
public:
static void main() {
for(
auto i = 0;
i <= 2; ++
i) {
threads.emplace_back(thread_proc);
threads.back().name(string::format(
"Thread_{}",
i));
threads.back().start();
}
"\nto release all the threads.\n");
mre.set();
"\ndo not block. Press Enter to show this.\n");
for(
auto i = 3;
i <= 4; ++
i) {
threads.emplace_back(thread_proc);
threads.back().name(string::format(
"Thread_{}",
i));
threads.back().start();
}
"\nwhen they call WaitOne().\n");
mre.reset();
threads.emplace_back(thread_proc);
threads.back().name("Thread_5");
threads.back().start();
mre.set();
}
private:
static void thread_proc() {
mre.wait_one();
}
};
}
startup_(manual_reset_event_example::program::main);
Represents a strongly typed list of objects that can be accessed by index. Provides methods to search...
Definition list.hpp:79
static xtd::string read_line()
Reads the next line of characters from the standard input stream.
static void write_line()
Writes the current line terminator to the standard output stream using the specified format informati...
Represents a thread synchronization event that, when signaled, must be reset manually....
Definition manual_reset_event.hpp:35
static thread & current_thread() noexcept
Gets the currently running thread.
static void sleep(int32 milliseconds_timeout)
Suspends the current thread for a specified time.
#define startup_(main_method)
Defines the entry point to be called when the application loads. Generally this is set either to the ...
Definition startup.hpp:167
@ i
The I key.
Definition console_key.hpp:104
The xtd::collections::generic namespace contains interfaces and classes that define generic collectio...
Definition comparer.hpp:16
The xtd::threading namespace provides classes and interfaces that enable multithreaded programming....
Definition abandoned_mutex_exception.hpp:10
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8