c# - 将 .NET 类库转变为多线程 .NET 类库的最佳实践

标签 c# .net multithreading class-library

我有一些 C# 类库,它们在设计时没有考虑并发、多线程、锁等问题......

代码结构良好,易于扩展,但它可以从多线程中获益良多:它是一组科学/工程库,需要在非常非常短的时间内执行数十亿次计算(现在他们不需要不要从可用内核中获益)。

我想将所有这些代码转换成一组多线程库,但我不知道从哪里开始,而且我之前也没有任何经验。

我可以使用任何可用的帮助和任何推荐/建议。

最佳答案

我的建议是不要这样做。您没有编写并行使用的代码,因此它不会工作,并且会以难以调试的方式失败。

相反,我建议您提前确定该代码的哪一部分可以从并行性中获益最多,然后从头开始重写该代码以实现并行。您可以利用面前未修改的代码,也可以利用现有的自动化测试。

有可能使用 .NET 4.0 Task Parallel Library将使工作更轻松,但它不会完全弥合未设计为并行的代码与设计为并行的代码之间的差距。

关于c# - 将 .NET 类库转变为多线程 .NET 类库的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2414050/

相关文章:

java - IOIO UART 读回问题

java - 实例控制类和多线程

c# - TimeSpan.Parse 时间格式 hhmmss

c# - 如何从我的网络服务器下载文件到我的桌面?

c# - 当我的类库函数被调用时,有什么方法可以自动进入调试器吗?

c# - 用纯 C# 代码编写的自定义 DataTemplate 的问题

c - 如何让多个进程同时读取同一个文件会减慢读取速度?

c# - Web API 中的多个操作(差异名称、http 动词)的一条路线

c# - 如何在 C# (.NET) 中执行 Javascript 代码

c# - 无法解码 .NET SslStream 握手中的完整密码列表