c# - 如何在 SmartThreadPool 中创建 STA 线程

标签 c# .net visual-studio

我正在使用 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/

相关文章:

c# - 试图将一个类的副本/克隆/复制者放入列表中

c# - 将字符串元素转换为字节

c# - Nuget 迁移的 Svn 外部 - 关注点

c# - LINQ根据计数> 1的另一列获取列

c# 初始化程序与构造函数

.net - .NET 中类加载器的等效项

c# - LINQ 从多行条件中选择一个 bool 值

c# - 如何根据先前返回的值向 LINQ 查询添加条件条件

c++ - MSVCP140D.dll 丢失,有办法解决吗?

c++ - 这些链接器错误的含义是什么?