我正在使用Task.Run()运行多个任务。我的每个任务都需要编辑一个多维数组... aka ...
Dim BigArray(3)() as integer
所以每个线程都需要做一些Redim Preserve,但是他们将调整数组的第二维。每个线程基本上都会重新调整它们自己的数组部分...例如......
Thread 1 will: Redim Preserve BigArray(0)(50)
Thread 2 will: Redim PReserve BigArray(1)(50)
Thread 3 will: Redim Preserve BigArray(2)(50)
安全吗?如果两个线程同时重新调整会发生什么?谢谢!
答案 0 :(得分:1)
Redim
将读取当前数组引用,进行一些处理并分配新的数组引用。这个get-set循环不是线程安全的。由于x = x + 1
不是线程安全的原因,它是不安全的。