是否有针对多个内核优化的.NET类/函数?
我知道开发者应该自己这样做。但是看看我们如何获得具有越来越多内核的CPU,并且仍然有许多开发人员不使用多线程,如果我们内置了这个功能,它可以在某些情况下显着提高性能。
这可能非常有用的一个特定示例是图像处理。我怀疑内置的GDI +类是多线程的。
答案 0 :(得分:6)
.NET的所有并行扩展?
答案 1 :(得分:4)
看一下this(讨论其他与并行化相关的事情,Task Parallel Library)。
.NET 4.0新手,“TPL的目的是通过简化向应用程序添加并行性和并发性的过程来提高开发人员的工作效率。”听起来与你正在寻找的非常相似。
而且,既然您提到图像处理是一种利用多个处理器的好方案,那么请查看作者所做的blog post。
希望这有用!
答案 2 :(得分:2)
您可以考虑为多核CPU制作PLINQ。
答案 3 :(得分:2)
绝对要看一下Task Parallel Library,它是专门在.NET 4中创建的,用于改进多线程操作,它使用.NET线程池中的新改进(在.NET 4中得到了很大改进) ,并针对多核/多处理器机器进行了优化)!
您还可以查看频道9中标记为Parallel Computing的视频,其中显示了许多使用这些新结构和类的工作示例,如果您需要进行一些理论讨论 - 请与Stephen Toub一起查看此讨论。并行扩展团队约Multi-Core and Parallel Programming Practices
最后我添加了SO的这个问题,谈论multithreading improvements in .NET 4
UPD:用GDI查看您的特定示例:您认为他们可以用多线程做什么? 使用 GDI绘制的应用程序可以是多线程的,并且可以处理多个线程中的数据。此外,并行运行会改变代码的工作方式。您不仅可以在多个线程中“使其工作”,而且“针对多个内核进行优化”并不像添加编译器指令那么简单。这意味着使用这个api的全新方法。
最后我要补充一点,Mucrosoft正在慢慢地从旧的Windows API(如GDI)转向WPF这样的东西,整个界面使用你的GPU进行驱动和增强。这需要从CPU到GPU的大量处理能力,这些处理能够更快,更好地处理。