表单似乎不是STAThread

时间:2017-08-10 14:20:24

标签: .net forms visual-studio-2015 sta

我正在分析一位同事的C#应用​​程序。 VS2015分析工具显示33%的独占样本出现在System.Windows.Forms.Application.Run中。几乎所有的计算都发生在click事件中,并且表单没有响应,正如您所期望的那样。我搜索了代码以确保没有明确创建任何线程。

我试图找出33%的使用位置。当我随机停止应用程序时,它总是在windowThreadProc(文件SystemEvents.cs)中等待消息。即使主计算正在运行,我也可以逐步完成循环;所以,它显然是在一个单独的线程上。

函数EnsureSystemEvents在Main之前运行。我可以单步执行它并看到它为windowThreadProc启动了一个线程。我可以在Main上看到[STAThread]属性。

不应该只有一个线程吗?请解释一下。

0 个答案:

没有答案