1
這應該是線程安全的,對嗎?有沒有更好的方法?應用程序空閒 - 這是線程安全的嗎?
Imports System.Threading
Public Class ApplicationIdleHelper
Private Shared lastInputTicks As Long
Public Shared Sub SetLastInputTime(dt As DateTime)
Interlocked.Exchange(lastInputTicks, dt.Ticks)
End Sub
Public Shared Function GetIdleTime() As Integer
Return (Now - New DateTime(Interlocked.Read(lastInputTicks))).TotalSeconds
End Function
End Class
在我的應用我有在PreFilterMessage
事件的方法SetLastInputTime
設置lastInputTicks
值。在其他一些Threads
我必須檢查這個變量。我通過調用GetIdleTime
來做到這一點,但現在我不確定,如果這是線程安全的,或者我可能遇到麻煩。
預先感謝您!