我有一个C++ Win32应用程序,当用户想要关闭应用程序时,有一些线程可能正在忙于执行IO(HTTP调用等)。目前,我打得很好,并等待所有的线程结束,然后从main
返回。有时,这需要比我想要的更长的时间,事实上,当我可以退出时,让用户等待似乎毫无意义。但是,如果我只是继续并从main
返回,那么在析构函数开始被调用的同时还有线程正在使用这些对象时,我很可能会崩溃。如何保证我的win32应用程序快速关闭?
所以,认识到在美德的理想,柏拉图式的世界,最好的事情是等待所有线程完全退出,然后关机,什么是下一个最好的现实世界的解决方案?简单地让线程更快地退出可能不是一种选择。我们的目标是尽快让程序停止,以便例如可以在其上安装新版本。我正在做的唯一一个磁盘IO是在一个事务性的数据库中,所以我并不担心拉上那个插件。
给出一个有趣的答案,将其改写成深渊,它看起来像...人们没有幽默感...... – tloach 2008-10-16 19:45:45
是的,我受伤了。也许他们的堆栈溢出了。 – 2008-10-16 20:35:24
DIGG或Slashdot是那个-----> – jim 2008-10-17 12:11:41