因为IO操作时间的问题,所以在程序中起动线程来进行文件的输出:
ThreadStart entryPoint = new ThreadStart(OnLoggerProc); thisTrd = new Thread(entryPoint); thisTrd.Name = "Log Output Thread"; thisTrd.Start();
private void OnLoggerProc()
{
try
{
IntPtr [] hEvt= {
_LogFileHandle, _LogControlHandle, _BothLogHandle
}; while(true) {
int dwRet = WaitForMultipleObjects(3, hEvt, false, INFINITE switch(dwRet)
{
case 0:
LogFileOutput(); ResetEvent(_LogFileHandle);
break;
case 1:
...
break;
case 2:
... break;
default:
break;
}
}
}
catch(Exception ex){}
}
LogFileOutput函数复测文件的输出,当输出文件比较少的时候能够正常结束线程,但是当文件很多(上万条)的时候,结束线程时就会报错。不知道那位能够解决,不胜感激!
ThreadStart entryPoint = new ThreadStart(OnLoggerProc); thisTrd = new Thread(entryPoint); thisTrd.Name = "Log Output Thread"; thisTrd.Start();
private void OnLoggerProc()
{
try
{
IntPtr [] hEvt= {
_LogFileHandle, _LogControlHandle, _BothLogHandle
}; while(true) {
int dwRet = WaitForMultipleObjects(3, hEvt, false, INFINITE switch(dwRet)
{
case 0:
LogFileOutput(); ResetEvent(_LogFileHandle);
break;
case 1:
...
break;
case 2:
... break;
default:
break;
}
}
}
catch(Exception ex){}
}
LogFileOutput函数复测文件的输出,当输出文件比较少的时候能够正常结束线程,但是当文件很多(上万条)的时候,结束线程时就会报错。不知道那位能够解决,不胜感激!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货