csharp:句柄

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
csharp:句柄 [2025/11/28 11:16] – 创建 张叶安csharp:句柄 [2025/11/28 11:16] (当前版本) – [4. 句柄泄漏 (Handle Leak)] 张叶安
行 7: 行 7:
 句柄(Handle)本质上是一个**整数值**(通常是 32 位或 64 位),操作系统(OS)用它来标识内存中的对象。 句柄(Handle)本质上是一个**整数值**(通常是 32 位或 64 位),操作系统(OS)用它来标识内存中的对象。
  
-* **抽象引用**:句柄不是指针,它不直接指向内存地址。它更像是一个“ID”或“索引”,操作系统通过这个 ID 在内部表中找到对应的资源。 +  * **抽象引用**:句柄不是指针,它不直接指向内存地址。它更像是一个“ID”或“索引”,操作系统通过这个 ID 在内部表中找到对应的资源。 
-* **非托管资源**:在 .NET 的垃圾回收(GC)机制之外的资源通常通过句柄来访问。 +  * **非托管资源**:在 .NET 的垃圾回收(GC)机制之外的资源通常通过句柄来访问。 
-* **类型**:在 C# 中,句柄通常用 `IntPtr` 结构体来表示。+  * **类型**:在 C# 中,句柄通常用 `IntPtr` 结构体来表示。
  
 ===== 2. 常见的句柄类型 ===== ===== 2. 常见的句柄类型 =====
行 95: 行 95:
 句柄泄漏是指程序请求了句柄但未能将其归还给操作系统。 句柄泄漏是指程序请求了句柄但未能将其归还给操作系统。
  
-* **后果**:系统资源耗尽,导致程序崩溃或系统变慢。 +  * **后果**:系统资源耗尽,导致程序崩溃或系统变慢。 
-* **检测**:可以使用任务管理器查看进程的“句柄数”列,或者使用 Sysinternals 工具集中的 **Process Explorer**。 +  * **检测**:可以使用任务管理器查看进程的“句柄数”列,或者使用 Sysinternals 工具集中的 **Process Explorer**。 
-* **预防**:+  * **预防**:
   - 总是实现 `IDisposable` 模式。   - 总是实现 `IDisposable` 模式。
   - 使用 `using` 语句块。   - 使用 `using` 语句块。

该主题尚不存在

您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。

  • csharp/句柄.1764299760.txt.gz
  • 最后更改: 2025/11/28 11:16
  • 张叶安