JerrySoft

导航

c#多线程写文件

现在有个多线程下载的类,好多线程同时写一个文件。

可行的方法:每个线程都开一个临时文件写 ,全部写完后合并这些文件。

private bool Writing = false;
private string filename = @"c:\1.dat";
byte index = 0;


private void Form1_Load(object sender, System.EventArgs e)
{
for(byte i = 0; i < 3; i )
{
ThreadStart strat = new ThreadStart(WriteFile);
Thread thread = new Thread(strat);
thread.Start();
}


}

private void WriteFile() 欢迎使用DedeCms
{
index ;
byte num = index;

byte[] bytes = new byte[1024];
for(int i = 0; i < 1024; i )
{
bytes[i] = num;
}

while(Writing == true)
{
Application.DoEvents();
}

Writing = true;
FileStream fs = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write);
fs.Seek((num -1) * 1024, 0);
fs.Write(bytes, 0, bytes.Length);
fs.Close();
Writing = false;

Debug.WriteLine(num "end");

}


调试结果:文件大小为3K,可用UE打开看一下

posted on 2007-06-13 14:08  水-手  阅读(3438)  评论(0)    收藏  举报