如何摆脱访问同一文件的两种方法之间的等待时间?
我有以下VBSCript代码片段在纯文本文件中查找部分(strSection)和该部分中的项目(strItem)。
Do While Not myINIFile.AtEndOfStream
sl_Sleep(100)
s = myINIFile.ReadLine <--- **This is the line that rises the exception**
If s = strSection Then
'Find the correct line
Do While Not myINIFile.AtEndOfStream
s = myINIFile.ReadLine
If InStr(s, strItem)>0 Then
Exit Do
End if
Loop
Exit Do
End if
Loop
似乎如果我没有放入Sleep(100)(毫秒)(或使用较低的值,如20或50),我最终得到一个异常,说“进程无法访问该文件,因为另一个进程已锁定文件的一部分”。
我认为Do While中的条件是在AtEndOfStream尚未完成时调用ReadLine方法。但是,每行使用100毫秒会使进程速度降低到不可接受的速度。
这是真正发生的事情还是其他地方的问题?
是否有任何我可以做的事情来防止这个进程被锁定或等待一段时间(直到它被释放)只有它被锁定所以它不会引发异常?
编辑:此代码循环通过如下所示的文件:
[Section1]
param1 = 100
param2 = 200
param3 = 300
[Section2]
param1 = 1000
param2 = 2000
param3 = 3000
[Section3]
param1 = 1
param2 = 2
param3 = 5
param4 = 10
param5 = 20
代码应该通过文件,直到找到[SectionX]行(strSection),然后继续读取行,直到找到“paramx”行(strItem)。然后将该行保存在's'中,稍后处理。
没有找到相关结果
已邀请:
4 个回复
犁攀富
谷靛
旦彤
结束功能
缮淳彼誊