2014-01-14 121 views
0

在我的项目中出于某种原因,我正在创建我的线程处于挂起状态,并且在某些状态之后我正在恢复线程。所以,当有时候恢复线程的时候,它可能会工作,或者有时候不会。那么,如果不起作用,处理错误的正确方法是什么?我是否应该重试该线程,或者是否应该等待一段时间或任何可能的适当处理机制?请指导我处理场景的最佳方式。我在这里使用ACE线程库。使用线程处理错误的正确方法是什么?

+0

为什么线程不工作?随着什么错误返回? – RedX

+0

某些时候它不起作用。它返回状态0. – Chris

+1

“它不工作”是不够的。也许你可以提供它应该执行的代码。也许你可以尝试返回不同的错误代码来显示线程中的进度。你如何开始你的线程? – RedX

回答

0

我可以推荐一个message queue?一个简单的实现只是更新的一个std::vector,其中向量中的每个值代表像加载资产(其更新体系结构将包括成功/错误代码和文件名)的更新,或者让另一个线程知道已经按下/释放了密钥。

编辑:

达蒙说,你还需要在时间mutex所以只有一个线程正在编辑的消息队列。

+0

即使OP所具有的实际问题还不知道,消息队列通常也是一个很好的建议,即“线程”。但是你应该在你使用“std :: vector”的建议中添加“和一个互斥量”(我个人更愿意使用一个循环缓冲区 - “vector”对于这个目的并不是很好)。 – Damon

+0

@Damon是的,完全忘了[互斥](http://stackoverflow.com/a/34558/3151642)... – Proxy

相关问题