我有结构:
public struct BaseFile
{
public string FileName;
public string Path; // this is not the full path. it is the fullPath of it's parent directory in other words.
}
我有课
public class MyFileDir // can be a file or directory
{
public string Name;
public string FullPath;
public List<MyFileDir> Children;
public bool IsDirectory;
// many more other properties
}
所以我有一个线程放置文件LinkedList<BaseFile> myLinkedList
,我希望另一个线程也开始投射这些文件MyFileDir root
(注意我使用linkedList而不是list,因为linkedList的地址不会改变List每次需要增长时都会改变它的地址)
我有一个布尔变量 IsRunning,它会让我知道其他线程是否仍在将基本文件添加到链接列表中。所以我有类似的东西:
var curNode = myLinkedList.First;
while (IsRunning)
{
if (curNode.Next == null) // wait until next node is not null
{
Thread.Sleep(100);
continue;
}
curNode = curNode.Next;
AddItemToTree(curNode.Value);
}
如您所见,我在实现该方法时遇到了麻烦,AddItemToTree
我基本上想开始以该方法构建树。所以首先我将查看根目录并搜索我应该添加的目录curNode.Value
。我很难做到这一点。