我有一些在 boost 线程中运行的代码,它修改了主线程处理的东西,这些东西不起作用,这是有道理的。
在android上,我将拥有Handler
一个消息队列,它将在主线程上执行我的代码,并且我可以将我想要的任何参数传递给这个处理程序。
我想对 boost 做同样的事情
所以在我的主线程上,我执行以下操作:
boost::thread workerThread(boost::bind(&SomeClass::pollService, this));
我的 pollService 方法:
SomeClass::pollService()
{
//get some stuff from a web service
//parse the json response
//NEEDED part: call a function to be executed on the main thread and hand it some functions
}
PS我看过很多io_service.post
例子,但我仍然不知道该怎么做,而且我读了一个说可以使用asio
strand
但我也无法理解的答案。
有人可以为我哑巴吗?请不要写太抽象的东西,我不会理解,我没有这方面的经验。谢谢