Comments (2)
on some GUI programs, it's rather handy to have network IO and gui executed in the same thread.
What's the issue with this solution (generic solution not related to Asio):
- keep Asio event loop in a dedicated thread pool (can be of one thread)
- in Asio completion handlers just send events into main event loop (could be GUI event loop)
?
I did the same in ma_qt_echo_server by wrapping Qt signals with Asio completion handlers and using Qt::QueuedConnection
type of Qt signal / slot connection.
from asio.
// or call g_main_idle_add() to post an execution of io.poll()
...
// or just g_main_loop_run()
If you want to integrate GTK+ and Boost.Asio event loops, check this: https://stackoverflow.com/questions/1001032/how-to-integrate-boost-asio-main-loop-in-gui-framework-like-qt4-or-gtk/66269341#66269341
The StackOverflow page has info on Qt as well (I haven't checked this one yet, but if it proves insufficient I'll offer my own solution later).
from asio.
Related Issues (20)
- A question regarding awaitables and executors
- Does asio support compile on qnx710 HOT 2
- How to build asio on Linux and Windows
- How to build asio on Linux and Windows HOT 1
- Build with `-DASIO_NO_EXCEPTIONS` and `-DASIO_SEPARATE_COMPILATION`
- Clarifying the difference between BOOST_ASIO_CONCURRENCY_HINT_UNSAFE and BOOST_ASIO_CONCURRENCY_HINT_UNSAFE_IO
- llvm17(clang-cl) with awaitable build error HOT 2
- Does asio support compile on VxWorks7? HOT 1
- Add asio::experimental::promise a default constructor and move assignment operator
- asio::error::ssl_errors should be scoped to prevent UB HOT 1
- Leak in move-assignment of ssl::detail::engine
- steady_timer.cancel() unable to release registered functions HOT 1
- Ambiguous call to `async_connect` because of unconstrained `ConnectCondition` HOT 1
- win_iocp_io_context::timer_thread_function::operator()() Exception
- libc++ removes some ifdefs so current code doesn't work as expected
- async_read on asio::serial_port does not return when io_context::stop() called
- Why are the classes scheduler, scheduler_task and scheduler_operations in the detail namespace?
- Handling of `error::eof` in `ssl::stream::shutdown(ec)`
- Segmentation fault when including <boost/asio.hpp> in multiple compilation units on MacOS with GCC
- Why were the sender/receiver marked depricated?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from asio.