Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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# 一个进程的GDI泄漏会影响其他进程吗?_C#_.net_Gdi+_Gdi_Resource Leak - Fatal编程技术网

C# 一个进程的GDI泄漏会影响其他进程吗?

C# 一个进程的GDI泄漏会影响其他进程吗?,c#,.net,gdi+,gdi,resource-leak,C#,.net,Gdi+,Gdi,Resource Leak,我们有GDI资源泄漏,这会不时导致“Win32Exception没有足够的存储空间来处理此命令”() 我们的应用程序由一个单词Addin和一个C#应用程序组成。addin一词的泄漏是否可以从C#应用程序中删除资源?我们已经看到应用程序在一些不相关的加载项问题之后崩溃 换句话说,GDI资源是专门分配给每个进程的还是以某种方式共享的?确切的数量可能取决于windows版本,但通常理论上每个会话的限制为65536。事实上,这是较低的(例如Windows 2000中的16384) 每个进程也有大约100

我们有GDI资源泄漏,这会不时导致“Win32Exception没有足够的存储空间来处理此命令”()

我们的应用程序由一个单词Addin和一个C#应用程序组成。addin一词的泄漏是否可以从C#应用程序中删除资源?我们已经看到应用程序在一些不相关的加载项问题之后崩溃


换句话说,GDI资源是专门分配给每个进程的还是以某种方式共享的?

确切的数量可能取决于windows版本,但通常理论上每个会话的限制为65536。事实上,这是较低的(例如Windows 2000中的16384)

每个进程也有大约10000个句柄的限制,尽管这可以通过注册表设置
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota
进行全局更改。尽管此设置不应由应用程序更改,因为它是计算机的全局设置


是的,GDI对象是从桌面堆分配的,该堆由在该桌面上运行的所有进程共享。由于appcompat的原因,交互式桌面上的大小限制为64K对象。但是你不能仅仅用一个坏的过程就把它耗尽,它需要好几个过程。我怀疑你找到了真正的原因。在任务管理器中很容易看到其他内容,请使用视图>选择列添加“GDI对象”列。