Asp.net 并行运行的相同函数将覆盖值?
我在许多地方使用相同的函数 例如下面的函数Asp.net 并行运行的相同函数将覆盖值?,asp.net,vb.net,Asp.net,Vb.net,我在许多地方使用相同的函数 例如下面的函数 Public Sub getUser(ByVal Name as string) dim myName=Name ....... insert(myName) End Sub 我在很多地方使用这个函数。。。 我怀疑这个函数是否应该用最新的函数调用覆盖这个myName值 假设我调用了getUser(“ABC”),所以myName的值现在是ABC现在突然调用getUser(“XYZ”),所以在insert(myN
Public Sub getUser(ByVal Name as string)
dim myName=Name
.......
insert(myName)
End Sub
我在很多地方使用这个函数。。。
我怀疑这个函数是否应该用最新的函数调用覆盖这个myName值
假设我调用了getUser(“ABC”),所以myName的值现在是ABC现在突然调用getUser(“XYZ”),所以在insert(myName)时,它会insert(“ABC”)还是insert(“XYZ”)
我需要它是insert(“ABC”)然后insert(“XYZ”)您可以使用锁定来确保一次只执行一个线程
//declare an object for locking
Dim lockObjcect As New [Object]()
Public Sub getUser(ByVal Name as string)
SyncLock lockObjcect
dim myName=Name
.......
insert(myName)
End SyncLock
End Sub
通过锁定,现在只有一个线程能够在
SyncLock和End SyncLock
之间执行代码。这意味着首先插入ABC
,然后插入XYZ
。。在上面的someLock中提供什么some
类代表任何对象。任何对象都可以用于锁定目的。为锁定目的声明单独的对象是一种很好的做法。只需制作一个对象类的对象。看到更新答案谢谢肉汤,但我问应该发生什么??它是否会覆盖?现在锁定时,只有一个线程能够在SyncLock
和End SyncLock
之间执行代码。这意味着首先插入ABC,然后插入XYZ