C# 如何使我的代码在多核上运行?
我已经用C#构建了一个应用程序,我希望能够针对多核进行优化。我有一些线程,我应该做更多吗 更新以了解更多详细信息C# 如何使我的代码在多核上运行?,c#,multithreading,multicore,C#,Multithreading,Multicore,我已经用C#构建了一个应用程序,我希望能够针对多核进行优化。我有一些线程,我应该做更多吗 更新以了解更多详细信息 C#2.0 在Windows Vista和Windows Server 2003上运行 再次更新 此代码作为服务运行 我不想有完整的代码。。。我的目标是获得你的经验和如何开始。就像我说的,我已经使用了线程。我还能做什么 对于C#,开始学习LINQ的工作方式,然后利用库及其.aspallel()扩展。您可能想看看.NET的并行扩展 为了能够更有效地利用多个核心,您应该将工作划分为
- C#2.0
- 在Windows Vista和Windows Server 2003上运行
- 此代码作为服务运行
- 我不想有完整的代码。。。我的目标是获得你的经验和如何开始。就像我说的,我已经使用了线程。我还能做什么
为了能够更有效地利用多个核心,您应该将工作划分为可以并行执行的部分,并使用线程将工作划分到多个核心上。您可以使用线程、后台工作线程、线程池等您可能需要阅读Herb Sutter的专栏“有效并发”。你会发现这些文章和其他文章。我认为编写一个高度优化的多线程进程要比在混合中加入一些线程困难得多 我建议从以下步骤开始:
5.梳理代码,确保资源以一致的顺序锁定,以最大限度地减少致命的威胁
请记住,完全有可能多线程版本的性能比同一应用程序的单线程版本差。没有理由进行良好的工程测量。了解您试图解决的问题、应用程序及其算法中的并行性(或潜在并行性)比线程同步、库等的任何细节都重要得多
从阅读开始(重点是“发现并发性”和更高级别的设计问题),然后继续阅读(从理论基础开始的实践细节)。只有使用线程技术,我才能在其他核心上继续?其他答案需要FramWork 3.5,所以你认为我可以用FrameWork 2.0来完成吗?是的,多线程或多进程,这是一种线程方式。是的.NET2.0可以处理线程。还请注意,您不需要Thread类来使用多个内核,但最终它们都使用线程。