如何检查递归方法是否已经结束?

Tom*_* B. 1 .net c# recursion

我刚刚完成了这个递归方法:

/// <summary>
/// Recursively process a given directory and add its file to Library.xml
/// </summary>
/// <param name="sourceDir">Source directory</param>
public void ProcessDir(string sourceDir)
{
    string[] fileEntries = Directory.GetFiles(sourceDir, "*.mp3");
    foreach (string fileName in fileEntries)
    {
        Song newSong = new Song();
        newSong.ArtistName = "test artist";
        newSong.AlbumName = "test album";
        newSong.Name = "test song title";
        newSong.Length = 1234;
        newSong.FileName = fileName;

        songsCollection.Songs.Add(newSong);
    }

    string[] subdirEntries = Directory.GetDirectories(sourceDir);
    foreach (string subdir in subdirEntries)
    {
        if ((File.GetAttributes(subdir) & FileAttributes.ReparsePoint) != FileAttributes.ReparsePoint)
        {
            ProcessDir(subdir);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作,我遇到的唯一问题是:我怎么知道这个方法何时完成执行?在.NET中有没有为此目的而做的事情?

RQD*_*QDQ 7

.NET中没有什么特别的东西告诉你这个......基本上,第一次调用ProcessDir将在递归结束后返回.