该项目针对.net 2.0。我正在使用以下方法在新线程中实例化一个方法:
myThread = New Threading.Thread(AddressOf myClass.MyMethod)
myThread.Start()
子是这样的:
Sub myMethod()
Dim fs As New IO.FileInfo(sFile)
While Not DateDiff(DateInterval.Second,
dtCurrentTime, Now()) > iTimeOutInSeconds
fs.Refresh()
If fs.Exists Then
fs.Refresh()
If fs.Length > 0 AndAlso fs.Length = iGrowing Then
bFileExists = True
Exit While
End If
iGrowing = fs.Length
System.Threading.Thread.Sleep(1000)
End If
End While
End Sub
我正在等到文件停止增长。问题是如果我从主线程调用它,例如:
Call myClass.MyMethod()
它工作正常,消耗的处理器功率很少。但是,如果我在一个单独的线程中调用它,则会消耗一台核心机器中的所有处理器功率,或多核机器中的一个核心。任何人都知道在不超过处理器的情况下进行“延迟”的另一种方法?