Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 并行运行的相同函数将覆盖值?_Asp.net_Vb.net - Fatal编程技术网

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