Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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
C# 刷子和钢笔的使用指南_C#_.net_Gdi - Fatal编程技术网

C# 刷子和钢笔的使用指南

C# 刷子和钢笔的使用指南,c#,.net,gdi,C#,.net,Gdi,创建gdi画笔和钢笔有多贵?我应该在添加所需的基础上创建它们,并将它们包装在using中以便快速处理它们,还是应该创建一个类似于System.Drawing.Brusks类的静态类?在使用静态笔刷加载的web应用程序中尝试自定义绘制图像时遇到异常 我不知道技术原因,但我认为画笔和笔不是线程安全的,所以我会根据需要以线程安全的方式创建它们,并在该范围内处理它们,可能是使用。对于我们的可配置GUI,我们想我们应该尝试将它们放在“使用”中(需要时重新创建)在绘制控件时,如果需要,我们会进行优化 这不是

创建gdi画笔和钢笔有多贵?我应该在添加所需的基础上创建它们,并将它们包装在using中以便快速处理它们,还是应该创建一个类似于System.Drawing.Brusks类的静态类?

在使用静态笔刷加载的web应用程序中尝试自定义绘制图像时遇到异常


我不知道技术原因,但我认为画笔和笔不是线程安全的,所以我会根据需要以线程安全的方式创建它们,并在该范围内处理它们,可能是使用。

对于我们的可配置GUI,我们想我们应该尝试将它们放在“使用”中(需要时重新创建)在绘制控件时,如果需要,我们会进行优化

这不是必需的

这是WinForm在WinCE上的应用,这通常意味着它擅长在桌面上显示可能稍慢的东西(例如,在WinCE上反射会感觉贵得多),所以除非你在桌面上做一些疯狂的图像处理,需要很多性能,否则我认为你应该在需要时创建它们


IIRC使用刷子。GDI中的集合可能是一个选项,因为这样可以确保它们最终得到缓存和释放,尽管我不确定那里的线程安全性。

IMO,它们的效率足够高,通常不应该创建在多个方法调用中使用的长时间实例,但是效率很低,在一个特定的方法中只能创建一次,而不是每次需要绘制某个对象时都创建一个新对象

换句话说,不要在类中存储自定义画笔,用于在每次调用
OnPaint
时绘制文本,也不要为该OnPaint调用中绘制的每行文本创建新画笔