一个方法对一个文件进行读,写。怎么样能保证线程安全
asp.net
一个方法对一个文件进行读,写。怎么样能保证线程安全
问题点数:20、回复次数:8Top
1 楼netsd(极品非车)回复于 2006-03-13 15:25:56 得分 4
读写的时候就已经把这个文件锁定了吧.Top
2 楼diandian82(点点(nothing))回复于 2006-03-13 15:33:36 得分 4
一般写的时候锁就可以了!Top
3 楼WTaoboy(SnowMans)回复于 2006-03-13 15:40:19 得分 4
public void WriteFile()
{
lock(this)
{
///////////
}
}
Top
4 楼koenemy(小妮她爹--给孩子起个名太费劲)回复于 2006-03-13 15:40:24 得分 0
问题就是出在读和写这块呀。。。
read()
creat()
是写在了一个类库里了,不归我管呀。。。。。我只是在一个方法里用这两个方法呀
public class File
{
/// <summary>
/// 读文件。
/// </summary>
/// <param name="Path">文件路径</param>
public static string Read(string Path)
{
using(StreamReader Str = new StreamReader(Path,System.Text.Encoding.UTF8))
{
return Str.ReadToEnd();
}
}
/// <summary>
/// 创建文件。
/// </summary>
/// <param name="Path">文件路径</param>
/// <param name="Content">内容</param>
public static bool Create(string Path,string Content)
{
bool isb = false;
using(StreamWriter sr = new StreamWriter(Path,false,System.Text.Encoding.UTF8))
{
sr.Write(Content);
sr.Close();
isb = true;
}
return isb;
}
}Top
5 楼koenemy(小妮她爹--给孩子起个名太费劲)回复于 2006-03-13 19:18:11 得分 0
upTop
6 楼wanyong775(渔民:小小的网少年)回复于 2006-03-13 19:42:29 得分 4
upTop
7 楼vivianfdlpw()回复于 2006-03-13 19:50:44 得分 4
可以使用Mutex来同步线程
private static Mutex mutex = new Mutex();
/// <summary>
/// 读文件。
/// </summary>
/// <param name="Path">文件路径</param>
public static string Read(string Path)
{
mutex.WaitOne();
using (StreamReader Str = new StreamReader(Path, System.Text.Encoding.UTF8))
{
return Str.ReadToEnd();
}
mutex.ReleaseMutex();
}Top
8 楼vivianfdlpw()回复于 2006-03-13 19:58:12 得分 0
private static Mutex mutex = new Mutex();
/// <summary>
/// 读文件。
/// </summary>
/// <param name="Path">文件路径</param>
public static string Read(string Path)
{
mutex.WaitOne();
string s;
using (StreamReader Str = new StreamReader(Path, System.Text.Encoding.UTF8))
{
s=Str.ReadToEnd();
}
mutex.ReleaseMutex();
return s;
}Top




