次のコード スニペットを c# で使用しています。このコードでは、ファイルを並列に読み取り、読み取り後に一部のテキストを置き換えてから、別の場所に書き戻しています。例外は発生していませんが、ファイルは別の場所に書き込まれません
class Program
{
private static readonly object _loc = new object();
public static string FileRead(string fileName)
{
string pattern = @"the";
var result = File.ReadAllText(fileName);
var replacedText = Regex.Replace(result, pattern, "XXXX");
var path = Path.Combine(@"D:\Demo2", fileName);
using (StreamWriter sw = new StreamWriter(path, false))
sw.Write(replacedText);
return replacedText;
}
static void Main(string[] args)
{
var files = Directory.GetFiles(@"D:\Demo", "*.txt");
Parallel.ForEach(files, x =>
{
Console.WriteLine("FileName={0}\tNOC={1}",x, FileRead(x).Length);
});
Console.ReadLine();
}
}