我有这个代码(感谢那些迄今为止一直在帮助的人)
它搜索目录和所有子目录以查找文件名。
Files.Clear(); //BindingList<FileInfo> Datasource for a datagridview
Task.Factory.StartNew( () =>
    {
       DirectoryInfo dir = new DirectoryInfo(MainFolder);
       foreach(var file in dir.EnumerateFiles("*" + textBox1.Text + "*.doc?", SearchOption.AllDirectories).Take(200))
       {
          this.BeginInvoke( new Action(() =>
             {
                Files.Add(file);
             }));
       }
     });
问题是,如果我设置textBox1.text为我知道只有 1 个的东西,它会将其添加到Files4 次。我尝试中断指向它以确保它不是我显示它的方式。  
我将这 4 个对象相互比较,它们是相同的。当我稍微打开搜索条件并获得 5 个结果时,其中一些是 1,一些是两倍,一些是三倍。所以有 5 个独特的结果,但总共有 10-12 个。
我究竟做错了什么?