2011-12-27 4 views
2
私は多くの場所から同じ機能を使用しています

...同じ機能Parallelを実行すると値が上書きされますか?

機能下記例えば、私は、この関数は、このがmyNameをオーバーライドする必要があります疑い持って、私はとても多くの場所からこの機能を使用しています

Public Sub getUser(ByVal Name as string) 
     dim myName=Name 
     ....... 
     insert(myName) 
End Sub 

... 最新の関数呼び出しの値?

私がgetUser( "ABC")を呼び出して、myNameの値がABCになったとすると、insert(myName)はinsert( "ABC")またはinsert )??あなたが1つのスレッドだけでは一度に

//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 

何かを確認するために、ロックを使用することができます

私はそれが(「ABC」)を挿入してから(「XYZ」)を挿入する必要が

答えて

1

ロック、今や一つのスレッドだけがSyncLock and End SyncLock間でコードを実行することができるようになりますが、これはABC最初に挿入され、その後XYZ

+0

おかげでハリスを挿入されることを意味..ここ – samirprogrammer

+0

上someLockに提供するために、どのような 'ソムクラスは任意のオブジェクトを表す。どのオブジェクトもロック目的で使用できます。ロック目的のために別のオブジェクトを宣言することは良い習慣です。オブジェクトクラスのオブジェクトを作るだけです。更新の回答を参照 –

+0

おかげでおかげで、でも私は何を求めているのですか?それは上書きされるかどうか? – samirprogrammer

関連する問題