我有一些 C# 类库,它们在设计时没有考虑并发、多线程、锁等问题......
代码结构良好,易于扩展,但它可以从多线程中获益良多:它是一组科学/工程库,需要在非常非常短的时间内执行数十亿次计算(现在他们不需要不要从可用内核中获益)。
我想将所有这些代码转换成一组多线程库,但我不知道从哪里开始,而且我之前也没有任何经验。
我可以使用任何可用的帮助和任何推荐/建议。
最佳答案
我的建议是不要这样做。您没有编写并行使用的代码,因此它不会工作,并且会以难以调试的方式失败。
相反,我建议您提前确定该代码的哪一部分可以从并行性中获益最多,然后从头开始重写该代码以实现并行。您可以利用面前未修改的代码,也可以利用现有的自动化测试。
有可能使用 .NET 4.0 Task Parallel Library将使工作更轻松,但它不会完全弥合未设计为并行的代码与设计为并行的代码之间的差距。
关于c# - 将 .NET 类库转变为多线程 .NET 类库的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2414050/