我正在创建一个TaskScheduler,它在给定持续时间时调度处理程序,并在计时器到期时执行它。在引擎盖下,它使用asio :: deadline_timer。根据asio :: io_service的文档,将在运行io_server :: run()函数的线程上下文中调用该处理程序。虽然我的要求是在不同的线程上下文中调用处理程序。
我们怎样才能实现它?确切地说,我的问题是,我们如何在不同的线程上下文中执行函数。例如。我当前在Thread1中,但是从Thread1,我想从Thread2上下文运行一些函数。
谢谢
答案 0 :(得分:0)
常见的模式是
计时器线程与客户端实现(队列处理)完全分离。客户必须表现得很合作。即不要强调回调时间,而是立即返回。