c# - 什么在我的应用程序中创建新线程?

标签 c# wpf multithreading

当运行一个简单的 GUI WPF 应用程序时,根本不使用 async/await。我没有通过 Task.Run 创建任何新线程,但由于某种原因,这是 Visual Studio 控制台中显示的内容:

The thread 0x1058 has exited with code 0 (0x0).
The thread 0x1b0c has exited with code 0 (0x0).
The thread 0x1ae4 has exited with code 0 (0x0).

这些线程是什么?谁在创造它们?如果我看到这一点,则意味着我调用的某些方法创建了新线程,对吗?

最佳答案

What are these threads? Who's creating them?

这些线程是由 CLR 创建的托管线程,它们用于执行代码。此外,当线程以代码 0 退出时,意味着没有发生错误。

I'm not creating any new threads by Task.Run

这是不正确的。 Task.Run 使用 CLR 托管线程池中的线程。它不会创建任何新线程。这是 CLR 在需要时做出的决定。

关于c# - 什么在我的应用程序中创建新线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33688988/

相关文章:

c# - 接口(interface)、抽象或只是虚拟方法?

wpf - 即使用户控件折叠/隐藏也会显示错误样式

wpf - 将 Popup 绑定(bind)到另一个控件的相对屏幕位置

c++ - 在同一链中执行异步操作

java - 如果单例 getInstance() 方法未同步,Junit 测试将失败

c++ - 编译器有时可以缓存声明为 volatile 的变量吗

c# - 为什么我不能在我的应用程序中引用 Bing map ?

c# - 在充满整数的文本框中查找逗号

c# - 无法解析此引用。找不到程序集

c# - WPF - 检测转换器中的设计模式