【发布时间】:2017-04-13 05:51:44
【问题描述】:
我有一个c程序基本上是在无限While循环中运行,如下图。
int main(int argc, char** argv )
{
Detectdirection *d;
//Mosquitto
io_service io;
deadline_timer t(io);
MosquitoInterface *m = new MosquitoInterface(t);
d = new Detectdirection();
while(true)
{
int ret = d->Tracking();
if(ret < 0)
cout << "Pattern is not found" << endl ;
}
delete d;
delete m;
cout << "Exit" << endl;
return 0;
}
我喜欢从 python 脚本运行和停止程序。 运行程序非常简单。只是为了提供构建文件的路径,如 here 所述。
但是如何从 Pyhton 停止应用程序,以便正确删除创建的对象。
【问题讨论】:
-
你不能。如果您终止程序,则对象将不会被正确破坏。内存将被释放,但不会调用它们的析构函数。做到这一点的唯一方法是以某种方式结束循环并让程序以正常方式退出。我建议你看看其他守护进程是怎么做的。
-
那是来自 boost ASIO 的
io_service吗?实际上,您可以有一个异步任务等待我在回答中描述的那些消息之一。