Constructor
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Bu metod handler içinden de çağrılabilir. Şöyle yaparız.
Şöyle yaparız.
boost::asio::io_context ioc;
Constructor - intŞöyle yaparız.
auto const threads = 1;
boost::asio::io_context ioc { threads };
BOOST_ASIO_CONCURRENCY_HINT_UNSAFE değeri için açıklaması şöyle.run metoduThis special concurrency hint disables locking in the reactor I/O. This hint has the following restrictions:— Care must be taken to ensure that run functions on the io_context, and all operations on the context's associated I/O objects (such as sockets and timers), occur in only one thread at a time.
Şöyle yaparız.
ioc.run();
run_one metodu
Bu metod handler içinden de çağrılabilir. Şöyle yaparız.
struct NestedHandler
{
NestedHandler(std::string name, asio::io_service * service) :
name(name),service(service)
{...}
void operator()()
{
std::cout << " { ";
std::cout << name;
std::cout << " ...calling poll again... ";
service->poll();
std::cout << " } ";
}
std::string name;
asio::io_service * service;
};
Daha sonra diğer handler'ları yazarız. Şöyle yaparız.struct DefaultHandler
{
DefaultHandler(std::string name) :
name(name)
{...}
void operator()()
{
std::cout << " { ";
std::cout << name;
std::cout << " } ";
}
std::string name;
};
int main()
{
asio::io_service service;
service.post(NestedHandler("N",&service));
service.post(DefaultHandler("A"));
service.post(DefaultHandler("B"));
service.post(DefaultHandler("C"));
service.post(DefaultHandler("D"));
std::cout << "asio poll" << std::endl;
service.poll();
return 0;
}
// Output:
asio poll
{ N ...calling poll again... { A } { B } { C } { D } }
Çıktı olarak şunu alırızasio poll
{ N ...calling poll again... { A } { B } { C } { D } }
Hiç yorum yok:
Yorum Gönder