我正在使用 Ami Bar 的 SmartThreadPool http://www.codeproject.com/KB/threads/smartthreadpool.aspx
虽然那里提到可以生成 STA 线程,但我找不到示例。我想在我的池中创建所有 STA 线程。
最佳答案
这是个坏主意。线程池线程的生命周期由它执行的代码决定,最好短而活泼。这不是 STA 线程的规则,只要在该线程上创建的 COM 对象未完成,它就必须保持事件状态并发送消息循环。与 TP 线程非常不兼容的要求。无论如何尝试这样做只会给你带来永无止境的痛苦,因为“无法使用与其底层 RCW 分离的 COM 对象”异常和死锁。这就是 .NET tp 线程始终为 MTA 的原因。
您必须使用常规线程。
关于c# - 如何在 SmartThreadPool 中创建 STA 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8051388/