アプリケーションを実行するためにスレッドプールを実装します。すべてのコンテンツはデスクトップのフォルダに保存されます。
各ファイルは.txt形式です。特定のフォルダーから各.txtを読み取り、.txtファイルをスレッドプール/スレッドキューに入れるにはどうすればよいですか?
アプリケーションを実行するためにスレッドプールを実装します。すべてのコンテンツはデスクトップのフォルダに保存されます。
各ファイルは.txt形式です。特定のフォルダーから各.txtを読み取り、.txtファイルをスレッドプール/スレッドキューに入れるにはどうすればよいですか?
これらは探し始めるのに良い場所です:ThreadPool.QueueUserWorkItemとDirectory.GetFiles
申し訳ありませんが、私のvb.netは錆びていますが、これがC#です。
foreach (string file in Directory.GetFiles(folder, "*.txt"))
ThreadPool.QueueUserWorkItem(ProcessFile, file);
void ProcessFile(Object fileNameObject)
{
string fileName = (string)fileNameObject;
string contents = File.ReadAllText(fileName);
// ... process contents here.
}
あなたの質問は、読みたいと言ってからスレッドプールに押し込みましたが、メモリが不足しないように逆に行います。スレッドプールにファイルパスをエンキューしてから、ワーカースレッドスレッドにファイルを読み取らせます。