修复: 在基于 .NET Framework 4.0 应用程序中使用 FileSystemWatcher 类时发生内存泄漏

文章翻译 文章翻译
文章编号: 2628838 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

在 Microsoft.NET Framework 4 基于应用程序使用FileSystemWatcher类,以监视指定的目录中的更改,则会发生内存泄漏。

原因

FileSystemWatcher类中的错误会出现此问题。当创建一个FileSystemWatcher对象时,FileSystemWatcher类使用GCHandle类创建固定的垃圾回收器 (GC) 句柄。句柄是 8k 字节为单位),并使用字节 [] 数据格式。但是,FileSystemWatcher对象永远不会释放 thegarbage 收集器句柄。因此,会出现"症状"一节中描述的问题。

解决方案

热修复补丁程序信息

现在可以从 Microsoft 获得支持的修补程序。但是,它用于更正本文描述的问题。它只应用于正经历此特定问题的系统。

若要解决此问题,请联系 Microsoft 客户支持服务,以获取此修复程序。Microsoft 客户支持服务的电话号码以及有关支持费用的信息的完整列表,请访问下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
注意在特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新能够解决您的问题,可能会免收支持电话的费用。其他支持问题和特定更新无法解决的问题照常收取支持费用。

先决条件

若要应用此修补程序,您必须安装.NET Framework 4。

重新启动要求

您必须重新启动计算机后,如果受影响的文件正在使用,则在应用此修补程序。

我们建议您关闭所有的.NET Framework 应用程序锁定,或使用受影响的文件,然后再安装此修补程序。

文件信息

此修复程序的全球版本具有的文件属性 (或更新的文件属性) 下表中列出。这些文件的日期和时间以协调世界时 (UTC) 显示。当您查看文件信息时,它已转换为本地时间。要了解 UTC 与本地时间之间的时差,请在控制面板中的日期和时间项中使用时区选项卡。

有关所有受支持的基于 x86 的版本的.NET Framework 4 中,Windows Server 2003、 Windows xp、 Windows Vista、 为 Windows Server 2008 中,为 Windows Server 2008 R2,或 Windows 7
收起该表格展开该表格
文件名称文件版本文件大小日期时间平台
System.dll4.0.30319.5133,511,1122011 年 10 月 10 月02:35x86
对于所有支持基于 x64 版本的.NET Framework 4 中,Windows Server 2003、 Windows xp、 Windows Vista、 Windows Server 2008 的、 对于 Windows 7,或 Windows Server 2008 R2
收起该表格展开该表格
文件名称文件版本文件大小日期时间平台
System.dll4.0.30319.5133,511,1122011 年 10 月 10 月02:35x64
对于所有受支持的.NET Framework 4 IA 64–based 版本 Windows Server 2003,Windows Server 2008 中,或 Windows Server 2008 R2
收起该表格展开该表格
文件名称文件版本文件大小日期时间平台
System.dll4.0.30319.5133,511,1122011 年 10 月 10 月02:35IA-64

更多信息

有关FileSystemWatcher类的详细信息,请访问下面的 MSDN 网站:
FileSystemWatcher 类的常规信息
有关GCHandle结构的详细信息,请访问下面的 MSDN 网站:
GCHandle 结构有关的一般信息

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

属性

文章编号: 2628838 - 最后修改: 2013年11月23日 - 修订: 2.0
这篇文章中的信息适用于:
  • Microsoft .NET Framework 4.0
关键字:?
kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbsurveynew kbmt KB2628838 KbMtzh
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 2628838
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com