는 .NET 4를 사용하는 경우, 당신은 C# .NET에서 Task Parallel Library
그냥 예를 사용할 수 있습니다 4 콘솔 응용 프로그램 :
internal class Program
{
private static readonly object listLockObject = new object();
private static readonly IList<string> lstFilesFound = new List<string>();
private static readonly TxtFile txtFile = new TxtFile("Some search pattern");
private static string sDir = "Something";
public static void Main()
{
Parallel.ForEach(Directory.GetDirectories(sDir), GetMatchingFolderAndDoSomething);
}
private static void GetMatchingFolderAndDoSomething(string directory)
{
//This too can be parallelized.
foreach (string f in Directory.GetFiles(directory, txtFile.Text))
{
lock (listLockObject)
{
lstFilesFound.Add(f);
}
}
DirSearch(directory);
}
//Make this thread safe.
private static void DirSearch(string s)
{
}
public class TxtFile
{
public TxtFile(string text)
{
Text = text;
}
public string Text { get; private set; }
}
}
자세한 내용과 함께 원하는 것을 지정하십시오. – moorara
그냥 다음 코드를 자체 스레드에서 실행하고 다시 돌아와서 앱이 계속 작동 할 수 있도록 하시겠습니까? DirSearch 란 ... 여기에 표시된 함수는 기본적으로 각각의 하위 폴더 내에서 파일을 반복적으로 가져옵니다. – DRapp