我构建了一个多线程应用程序,其中应用程序启动时产生了三个线程,并且这些线程继续运行以实现应用程序生命周期。我的所有线程都是排他性的,不管怎样都不会互相干扰。现在用户可以暂停应用程序,并且在这里我想暂停或者说,放弃我的线程。我正在将线程产生为前台线程,但我猜想将它们改为后台线程不会影响我的应用程序(除非它们(前台线程)会使应用程序保持活动状态直到它们完成)。为多线程应用程序建议一种改进的方法
我会问这里的人建议通过thread.suspend()或thread.abort()暂停应用程序的方法。我知道thread.suspend已经过时并且有风险,但是它对我的应用程序也有害,因为我没有使用任何类型的同步。 PS:我的线程每分钟都会从嵌入式数据库(sqlite)保存和检索一些数据到&。
在应用程序中,我的线程大部分时间都在睡觉,然后醒来后执行他们的工作,然后再次入睡。此过程将持续到申请暂时暂停或永久注销为止。但是,我希望线程在用户暂停或注销应用程序后立即退出。你认为这可以通过互斥或等待手柄来实现吗?如果是这样,请您详细说明一下(只是一个简单的要求),因为我刚开始使用这个多线程的东西。谢谢。 – madcap 2010-07-12 12:31:58
不,这是不可能的,但你真的需要_destroy_线程,或者你只是想停止线程处理?答案应该主要取决于线程需要的资源(即将大对象保留在内存中) – dbemerlin 2010-07-12 12:46:59
嗯,我希望我的线程在用户暂停时暂时挂起,然后当用户恢复时,我希望我的线程再次运行。用户也可以注销我想中止所有线程的应用程序。我现在所做的是我在两种情况下中止了线程。 – madcap 2010-07-12 13:01:45