多线程处理业务请求,怎么把处理结果写入到文件里?总是报有进程打开文件

cooldai 2006-04-23 11:22:24
我用多线程处理业务请求,想把每个请求的返回数据都记录到一个文本文件(日志)里,可是
总是报有进程打开此文件,结果写不进去,各位高手一般是怎么处理这种问题的?
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cooldai 2006-04-24
  • 打赏
  • 举报
回复
感谢Knight94(愚翁),也感谢GXY2005,
我多年未写程序了,C#也是刚接触,以后还要多麻烦。
还有我的.net的msdn总是查找不到有用处的内容,比如我输入查找ReleaseMutex,Thread或者选择关键字按F1都不能命中帮助,请问是我的msdn安装有问题吗?还是.net的msdn就这样?
我msdn是三张碟完全安装的,放在d:\msdn目录,总共约1.67G,请指教。
GXY2005 2006-04-24
  • 打赏
  • 举报
回复
正如上面,你要关闭释放对象
sr.Flush();
sr.Close();
Knight94 2006-04-24
  • 打赏
  • 举报
回复
sample code as follows:

private Mutex mWriter = null;
private void multconn(int i)
{
if( mWriter == null ) mWriter = new Mutex();
mWriter.WaitOne();//Get mutex to write log file
try
{
StreamWriter sr =new StreamWriter(@"c:\temp\dai.txt",true);
r=sendreq(); //发送请求并取得结果;
sr.WriteLine("r");
sr.Flush();
sr.Close();
}
catch{ }
mWriter.ReleaseMutex();//Release mutex after writing
}
cooldai 2006-04-23
  • 打赏
  • 举报
回复
public int totalsnum =0;
...
private void button1_Click(object sender, System.EventArgs e)
{
testthread();
}

public void ThreadProc()
{
while (totalsnum<50)
{
Interlocked.Increment(ref totalsnum);
multconn(totalsnum-1);
Thread.Sleep(0);
}
}

private void testthread()
{
Thread t1=new Thread(new ThreadStart(ThreadProc));
Thread t2=new Thread(new ThreadStart(ThreadProc));
t1.Name="thread1";
t2.Name="thread2";
t1.Start();
t2.Start();
}

private void multconn(int i)
{
StreamWriter sr =new StreamWriter(@"c:\temp\dai.txt",true);
r=sendreq(); //发送请求并取得结果;
sr.WriteLine("r");
}
copico 2006-04-23
  • 打赏
  • 举报
回复
代码帖上来看看

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧