【发布时间】:2011-07-14 09:39:25
【问题描述】:
我有一个创建 10 个线程 + 一个创建任务列表的 Windows 服务。
这 11 个线程中的每一个都通过调用 CoInitialize(nil) 进入 STA。
- 任务列表由一个线程创建,另一个线程获取项目,处理它并释放....
a) 其他线程可以使用其他线程创建的对象吗? (这似乎有效,但是..) b) 其他线程可以释放其他线程分配的内存吗? (这似乎行不通...)
我应该以某种方式在线程之间编组指针吗? 还是我至少应该得到该项目,对其进行处理,但让它成为创建它的线程的“所有者”?
- 在我的 Windows 服务中,我创建了可用于启动/停止服务(暂停和恢复线程)的功能。
但是,我对实际收集数据并在间隔内执行的线程有疑问。 当线程加载要处理的项目后,它进入睡眠状态 5 分钟。 我怎样才能安全地终止这样的线程?如何中止睡眠状态?
提前感谢您的帮助!
【问题讨论】:
标签: multithreading delphi com+ sta