损坏的堆内存

时间:2017-10-18 14:08:19

标签: c# heap-memory

我遇到堆腐败问题并经过一些帮助。

我有一个下拉组合框,其中数据源是网络驱动器上的简单目录列表。

然后我调用partial类来应用过滤器.i.e在列表中只显示与类型字符匹配的行。这就是问题所在。它非常随机。它可以连续工作10或15次,然后因堆损坏错误而停止。或者连续几次停止然后再次工作。

我是非常缺乏经验的C#开发人员,所以请和我在一起!

我按以下方式发起了名单:

List<string> arrProjectList;

this.List = Directory.GetDirectories(sRootDirectoryPrograms).Select(Directory => Path.GetFileName(Directory)).ToList();

然后在我的部分课程中,我会做以下事情:

 public void DropDownTextUpdated()
    {
      string filter_param = SelectJobDropdown.Text;

      if (String.IsNullOrWhiteSpace(filter_param))
        {
            //reset some variables
        }
        else
        {
            if (filter_param != null)
            {
                List<string> filteredItems = this.arrProjectList.FindAll(x => x.ToLower().Contains(filter_param.ToLower()));

                if (filteredItems.Count == 0)
                {
                    //reset some variables
                }
                else
                {   
                     /*************************************/ 
                    //this is where issue occurs on random!!!
                     /*************************************/                    
                    SelectJobDropdown.DataSource = filteredItems;
                    SelectJobDropdown.IntegralHeight = true;
                }

                SelectJobDropdown.DroppedDown = true;
                Cursor.Current = Cursors.Default;

                // remove automatically selected first item
                SelectJobDropdown.SelectedIndex = -1;

                SelectJobDropdown.Text = filter_param;

                // set the position of the cursor
                SelectJobDropdown.SelectionStart = filter_param.Length;
                SelectJobDropdown.SelectionLength = 0;
            }

    }

更新:

错误详情: 希望这是足够的细节。

System.AccessViolationException未处理 消息:未处理的类型&#39; System.AccessViolationException&#39;发生在System.Windows.Forms.dll中 附加信息:尝试读取或写入受保护的内存。这通常表明其他内存已损坏。

正如我所说的随机但当它发生时,它会在我输入单个字符时立即发生。

我读到了一些调试,但不知道如何解决这个问题!

任何帮助将不胜感激

0 个答案:

没有答案