【发布时间】:2010-02-09 16:59:09
【问题描述】:
这段代码是线程安全的吗?或者这样说:
无论如何调用 GetIt() 并且 GetIt() 将返回相同的数字到 2 个不同的线程
Private Shared hitCount As Long = 1
Public Shared Function GetIt() As Long
Threading.Interlocked.Increment(hitCount)
DoSomethingQuick(hitCount)
Return hitCount
End Function
好像有可能,那我是应该用Interlocked.Read()还是把整个东西锁在一个块里?
【问题讨论】:
-
我认为一旦您到达
Integer.MaxValue就会遇到溢出异常?hitCount是 Long 但您返回的是 Integer。
标签: .net performance multithreading interlocked