首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF应用程序的19个线程

WPF应用程序的19个线程
EN

Stack Overflow用户
提问于 2009-09-27 17:48:07
回答 1查看 1.1K关注 0票数 12

我刚刚创建了一个新的WPF应用程序,它有大约5个窗口,并利用了Xceed数据网格。在查看任务管理器后,我发现这个小应用程序有19个线程在运行。

这可能是正确的吗?我期望WPF框架使用2-3个线程,但不是19个。或者我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-09-27 20:14:44

首先,它不是19。

在运行"Hello,World!“时WPF应用程序,我在任务管理器中看到10个线程。当使用Visual Studio调试器运行相同的应用程序时,它使用19。因此,首先,从调试器中提取作为开销添加的9。

10的Now。

根据MSDN Magazine的一篇名为"Build More Responsive Apps With The Dispatcher"的文章,WPF从两个线程开始:

所有的WPF应用程序都从两个重要的线程开始,一个用于呈现,另一个用于管理用户界面。渲染线程是在后台运行的隐藏线程,因此您通常处理的唯一线程是UI线程。

但根据this article的说法,所有托管应用程序中都有很多基本线程,不管是不是WPF:

有不同类型的.NET线程:终结器、GC、调试器、计时器、线程池、主线程和后台线程。但并不是所有与.NET相关的线程都是托管的。

从WPF的two开始,添加GC和终结器以获得four。添加调试器线程(所有托管应用程序都有一个线程,即使在不调试时也有一个线程),以获得five。添加计时器以到达six

而且,在VS外部启动之后,将调试器附加到我的WPF应用程序,我可以看到线程池中有两个工作线程。这可能是最低要求。这将使我的应用程序达到8

有两个我无法确切说明,但它们很可能是用于互操作的COM线程(它们肯定不是托管线程)。我引用的second article讨论了更多这方面的内容。

但这个故事的真正寓意是,不要担心它们。如果是香草味的"Hello,World!“应用程序使用10,这是您的基准。只关心您创建的线程数超过这个最小值。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1484060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档