C# 需要关于线程使用量的建议吗

C# 需要关于线程使用量的建议吗,c#,.net,multithreading,C#,.net,Multithreading,嘿,我希望有人能给我解释一下。我是编程新手,到目前为止,在我编写的程序中,我没有做过任何关于线程的事情,但是当我在Windows7中查看资源监视器时,它显示了我的程序的18个线程 此时,我的程序平均使用了大约10000KB的私有内存,几乎没有达到cpu使用量的1%。该计划仍然运行良好,但我只是有点困惑,并希望对此有一些见解 这应该是我应该关注的问题吗?如果是,我应该关注什么可能会导致这么多线程被使用?您看到的线程可能不是您自己的线程,它们将由clr拥有,并将处理垃圾收集之类的事情 我建议您不必担

嘿,我希望有人能给我解释一下。我是编程新手,到目前为止,在我编写的程序中,我没有做过任何关于线程的事情,但是当我在Windows7中查看资源监视器时,它显示了我的程序的18个线程

此时,我的程序平均使用了大约10000KB的私有内存,几乎没有达到cpu使用量的1%。该计划仍然运行良好,但我只是有点困惑,并希望对此有一些见解


这应该是我应该关注的问题吗?如果是,我应该关注什么可能会导致这么多线程被使用?

您看到的线程可能不是您自己的线程,它们将由clr拥有,并将处理垃圾收集之类的事情


我建议您不必担心线程管理。如果您需要对同时发生的多个任务进行编程,请查看。多线程编程很难,只有在您真正需要的时候才能了解它。

您看到的线程可能不是您自己的线程,它们将由clr拥有,并将处理垃圾收集之类的事情


我建议您不必担心线程管理。如果您需要对同时发生的多个任务进行编程,请查看。多线程编程很难,只有在你真正需要的时候才能了解它。

你所做的就是所谓的“过早优化”。谷歌搜索这个表达式,你会发现你不应该担心这个问题。让CLR决定它应该使用多少线程。如果您正在通过visual studio对此进行调试,其中一些是调试线程之类的。您可能不是自己在执行线程。。但图书馆将是如此。打开任务管理器中的“线程”列,查看其他一些程序使用了多少线程。例如,Chrome现在有99个线程正在为我运行:)谢谢大家提供的信息。我真的不太担心这些事情,但由于我是编程新手,我想尽量不学习任何坏习惯,并了解我所看到的。我在谷歌搜索时发现的一切都表明线程使用的越低越好,并建议保持在2左右。当查看其他程序的使用情况时,我想问一下。线程使用率越低越好,建议保持在2左右听起来像是一个使用有限的建议?如果您有可以并行化的代码,并且您有64个内核,其中大多数都是空闲模式,该怎么办?的确,你不应该(自己)把线程当作糖果一样发出——特别是当它们大部分时间都在空闲时。但同样正确的是(如前所述),最好由CLR决定。您的工作只是告诉CLR可以在哪里应用多线程,然后让CLR决定如何(至少90/100是这样)您所做的被称为“过早优化”。谷歌搜索这个表达式,你会发现你不应该担心这个问题。让CLR决定它应该使用多少线程。如果您正在通过visual studio对此进行调试,其中一些是调试线程之类的。您可能不是自己在执行线程。。但图书馆将是如此。打开任务管理器中的“线程”列,查看其他一些程序使用了多少线程。例如,Chrome现在有99个线程正在为我运行:)谢谢大家提供的信息。我真的不太担心这些事情,但由于我是编程新手,我想尽量不学习任何坏习惯,并了解我所看到的。我在谷歌搜索时发现的一切都表明线程使用的越低越好,并建议保持在2左右。当查看其他程序的使用情况时,我想问一下。线程使用率越低越好,建议保持在2左右听起来像是一个使用有限的建议?如果您有可以并行化的代码,并且您有64个内核,其中大多数都是空闲模式,该怎么办?的确,你不应该(自己)把线程当作糖果一样发出——特别是当它们大部分时间都在空闲时。但同样正确的是(如前所述),最好由CLR决定。您的工作只是告诉CLR可以在哪里应用多线程,然后让CLR决定如何应用(至少这是正确的90/100)+1。如果有兴趣-VS有“线程”视图,这可能有助于了解每个线程的用途。+1。如果感兴趣的话,VS有“线程”视图,这可能会对每个线程的用途有所帮助。