use*_*346 5 c# multithreading winforms
我正在8 CPU机器上开发单线程应用程序,当发生繁重操作时,CPU利用率如下所示:

.NET框架是否具有将单个线程(自动)的工作划分为其他CPU的功能?
不能保证任何单个线程总是在同一个核心上运行.但它保证它只会同时在一个核心上运行.但它可以在一个核心上运行直到上下文切换,并在上下文切换到另一个核心后恢复.您的线程获得的每个时间片可以在另一个核心上分配.
单个线程应用程序是否只在一个CPU上运行?
正如其他人所说,不一定.但是,给定的线程一次只能在一个核心上运行.
.net框架是否具有将工作划分为其他CPU的功能?
是..NET有Parallel类和Parallel LINQ.请注意,您必须自己划分工作(分成小块),然后.NET框架将自动处理多个线程之间的工作.
.NET 垃圾收集器将在另一个线程上运行,如果您正在使用 WinForms/WPF,则 GUI 将在另一个线程上运行,操作系统将在其他线程中执行各种工作,以帮助您的单线程应用程序运行得更快。
| 归档时间: |
|
| 查看次数: |
1366 次 |
| 最近记录: |