C# C-COMException未处理

C# C-COMException未处理,c#,active-directory,C#,Active Directory,我正在开发一个应用程序,从中可以从Active Directory获取有关用户的信息。我检查每个用户并获取其信息。我在广告中有很多用户,当我开始运行应用程序时,它运行得很好,但是当涉及到用户2000时,应用程序停止并给我一个错误:句柄无效。来自HRESULT的异常:0x80070006 E_句柄 我真的不知道这意味着什么,因为完全相同的应用程序在另一台计算机上工作得非常好,它通过广告中的每个用户获得他们的信息 我能做什么 编辑:我使用BackgroundWorker从广告中获取有关用户的信息

我正在开发一个应用程序,从中可以从Active Directory获取有关用户的信息。我检查每个用户并获取其信息。我在广告中有很多用户,当我开始运行应用程序时,它运行得很好,但是当涉及到用户2000时,应用程序停止并给我一个错误:句柄无效。来自HRESULT的异常:0x80070006 E_句柄

我真的不知道这意味着什么,因为完全相同的应用程序在另一台计算机上工作得非常好,它通过广告中的每个用户获得他们的信息

我能做什么

编辑:我使用BackgroundWorker从广告中获取有关用户的信息

   private void BGWorker_DoWork(object sender, DoWorkEventArgs e)
    {
        try
        {
            //Here I call the method to get user information from the AD.
            GetUserFromADMethod("Server", "AD");
        }
        finally
        {
           //Calling Dispose() here dose not work.
            BGWorker.Dispose();
        }
   }

这是一个低级Windows错误,错误\u无效\u句柄,错误6。枚举大量数据时获取无效句柄值表明应用程序在应该调用Dispose时没有调用Dispose。一个可能的诊断是TaskMgr.exe的“进程”选项卡。查看+选择列和勾选控制柄。观察程序运行时显示的值。在大多数机器上,当它达到10000时,就会出现大的kaboom


检查代码是否正确使用using语句,或者在使用的类实现它时显式调用Dispose或Close

我正在使用BackgroundWorker。处理后台工作人员的最佳方法是什么?您是否创建了2000名后台工作人员?希望不会。关注查询创建的对象。我只能猜测而看不到任何片段。不,我使用1个backgroundworker为用户分配值,而不是2000。我真的不知道该打电话到哪里。我尝试过Do_工作方法,但它不起作用。我也不知道,我从这里看不到你的屏幕。我在问题中添加了一些代码来解释我的Do_工作是如何工作的。