Sno*_*lax -1 .net c# task-parallel-library
当我从类I下面运行方法DoStuff()时,我有时会得到一个异常:
The process cannot access the file because it is being used by another process.
Run Code Online (Sandbox Code Playgroud)
为什么会发生?我认为ReaderWriterLockSlim应该解决这个潜在的问题?
public class Test
{
private ReaderWriterLockSlim lock_ = new ReaderWriterLockSlim();
public Test()
{
}
public void DoStuff()
{
while (true)
{
Task[] tasks = new Task[5];
for (int i = 0; i < 5; i++)
{
tasks[i] = Task.Factory.StartNew(() =>
{
lock_.EnterReadLock();
try
{
File.AppendAllText("test.txt", "test");
}
finally
{
lock_.ExitReadLock();
}
}
});
}
Task.WaitAll(tasks);
Thread.Sleep(5000);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
429 次 |
| 最近记录: |