2

我正在使用 Task.Run() 运行多个任务。我的每个任务都需要编辑一个多维数组......又名......

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)

安全吗?如果两个线程同时变暗会发生什么?谢谢!

4

1 回答 1

1

Redim将读取当前数组引用,进行一些处理并分配一个新的数组引用。这个 get-set 循环不是线程安全的。出于同样的原因,它是不安全的,它x = x + 1不是线程安全的。

于 2013-09-27T22:59:20.167 回答