gpt4 book ai didi

c# - 一个进程内可以共存多少个 'STA'线程?

转载 作者:太空狗 更新时间:2023-10-29 20:01:58 26 4
gpt4 key购买 nike

我的 ASP.NET 应用程序中需要多个 STA 线程来使用一些 COM 组件。

我在每个进程中的某个地方读到,只能存在一个 STA 线程。我编写了一个示例项目并制作了许多线程并将它们的单元状态设置为 STA 并且它们毫无异常(exception)地使用 COM 对象。

是否可以在一个进程中有多个 STA 线程?

最佳答案

您可以拥有的 STA 线程数没有固有的限制,但是您可能希望自己施加这样的限制。

如果您允许您的 ASP.NET 应用程序在新用户请求到达时创建额外的 STA 线程,而不限制它,最终线程数将导致您的应用程序性能下降,因为 CPU 花费在上下文切换上的时间量变得过高。这也会使您的应用程序更容易受到拒绝服务攻击。

您可以考虑这样一种设计,即根据您的硬件或用户配置文件设置 STA 线程的数量限制,一旦达到限制,就实现一些池化以重新使用现有 STA 线程来为新请求提供服务。

关于c# - 一个进程内可以共存多少个 'STA'线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4527755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com