Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
.net WaitAny和SyncLock?_.net_Multithreading - Fatal编程技术网

.net WaitAny和SyncLock?

.net WaitAny和SyncLock?,.net,multithreading,.net,Multithreading,我有一些我正在使用的遗留代码,我遇到了一些对我来说没有意义的东西 WaitHandle.WaitAny(AutoResetEventArray, System.Threading.Timeout.Infinite, False) Do Until aListCount = 0 SyncLock ALockingObject 'doing some stuff End

我有一些我正在使用的遗留代码,我遇到了一些对我来说没有意义的东西

 WaitHandle.WaitAny(AutoResetEventArray, System.Threading.Timeout.Infinite, False)
            Do Until aListCount = 0
                SyncLock ALockingObject
                     'doing some stuff
                End SyncLock
            Loop

我远非线程方面的专家,但我的理解是WaitAny在接收到设置的事件之前会阻塞线程,所以我想知道同步锁的用途是什么。有人能解释一下我对线程的误解,或者解释一下为什么代码会这样构造吗?仅供参考,AutoResetEventArray的大小为1。
WaitAny
调用正在等待设置
AutoResetEventArray
中的任何
WaitHandle
s。一旦发生这种情况,它将在循环中锁定
ALockingObject
。在
AutoResetEventArray
alockgObject
中,没有任何东西(无论如何,在您的代码中)指示句柄之间的关系,因此,我假设还有其他操作使用了受
alockobject

保护的资源。同步锁可能用于其他线程。感谢您的反馈。多亏了slaks。这是一个相当多的遗留代码,所以我将看看我是否可以找到一个关系。WaitAny(或任何等待)仅解除阻止线程它不保证在另一个线程解除阻止并开始执行之前执行代码。。。