日期:2014-05-18  浏览次数:20821 次

多线程 操作一个文件的问题.
多线程 操作一个文件的问题.

每个线程 都会 去读写一个文本文件.

怎么样让线程之间不同时去读写这个文本文件???

就是一个线程读写这个文件时,另一个线程就等着 上一个线程读写完成之后再读写?



------解决方案--------------------
C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字lock定义如下:
lock(expression) statement_block

------解决方案--------------------
定义一个全局变量

private object lockObj=new object();

在读写文件的地方

lock(lockObj)
{
//读写文件代码
}
------解决方案--------------------
线程
{
lock(this)
{
读写文件
}
}
------解决方案--------------------
探讨

线程
{
lock(this)
{
读写文件
}
}