使用GDI在C#winforms中进行异步渲染
我需要渲染大量的线条。CPU有4个内核,所以为了提高性能,我决定在不同的线程中将它们部分渲染成位图。我可以这样提高性能吗?最好的方法是什么?我发现图形有问题。当我设定:使用GDI在C#winforms中进行异步渲染,c#,winforms,asynchronous,parallel-processing,gdi,C#,Winforms,Asynchronous,Parallel Processing,Gdi,我需要渲染大量的线条。CPU有4个内核,所以为了提高性能,我决定在不同的线程中将它们部分渲染成位图。我可以这样提高性能吗?最好的方法是什么?我发现图形有问题。当我设定: g.SmoothingMode = SmoothingMode.HighQuality; 只有一个核心用于所有线程,但当我设置: g.SmoothingMode = SmoothingMode.HighSpeed; 它工作正常。是的,GDI+部分是线程安全的。位图有一个锁,不能让两个线程绘制同一个位图。但是让他们在不同的位图
g.SmoothingMode = SmoothingMode.HighQuality;
只有一个核心用于所有线程,但当我设置:
g.SmoothingMode = SmoothingMode.HighSpeed;
它工作正常。是的,GDI+部分是线程安全的。位图有一个锁,不能让两个线程绘制同一个位图。但是让他们在不同的位图上工作是可以的。当你弄错的时候,它会大声尖叫。谢谢。还有一个问题。当我使用ThreadPool.GetAvailableThreads创建多个线程时,只有一个核心在工作。如何使用所有内核?