Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GDI在C#winforms中进行异步渲染_C#_Winforms_Asynchronous_Parallel Processing_Gdi - Fatal编程技术网

使用GDI在C#winforms中进行异步渲染

使用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+部分是线程安全的。位图有一个锁,不能让两个线程绘制同一个位图。但是让他们在不同的位图

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

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

g.SmoothingMode = SmoothingMode.HighQuality;
只有一个核心用于所有线程,但当我设置:

g.SmoothingMode = SmoothingMode.HighSpeed;

它工作正常。

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