【问题标题】:Asynchronous rendering in C# winforms using GDI使用 GDI 在 C# winforms 中进行异步渲染
【发布时间】:2012-03-06 17:58:29
【问题描述】:

我需要渲染大量的线条。 CPU 有 4 个内核,因此为了提高性能,我决定将它们部分渲染为不同线程中的位图。我可以通过这种方式提高性能吗?最好的方法是什么?

【问题讨论】:

  • 是的,GDI+ 是部分线程安全的。有一个与位图关联的锁,您不能让两个线程绘制到同一个位图。但是让它们在不同的位图上工作是可以的。当你弄错时它会大声尖叫。
  • 谢谢。还有一个问题。当我使用 ThreadPool.GetAvailableThreads 创建多个线程时,只有一个内核在工作。如何使用所有内核?

标签: c# winforms asynchronous parallel-processing gdi


【解决方案1】:

我发现图形有问题。当我设置:

g.SmoothingMode = SmoothingMode.HighQuality;

所有线程只使用一个核心,但是当我设置时:

g.SmoothingMode = SmoothingMode.HighSpeed;

效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 2018-09-23
    • 2012-08-26
    • 2013-08-01
    • 2012-05-15
    • 2022-12-14
    • 2011-06-07
    • 2018-03-29
    相关资源
    最近更新 更多