所以我在网上搜索,我得到的大多数答案都说 Excel 中没有并发。但是有些帖子说 EXCEL 2007 提供了多线程以加快计算速度。我真的很困惑,这可能吗?
在我的工作簿中,有一些单元格是使用用户定义的函数计算的。这些单元每秒通过 RTD 服务器更新一次。那么这是否意味着这些函数看起来是并行重新计算的,但实际上 Excel 只是按顺序调度它们呢?计算机是否具有多个内核是否会有所不同?
事实上,如果这些函数是按顺序运行的,那么下面的两个函数是等价的吗?在性能和速度方面。
1)
cell1 = userFunc(1, switch1)
cell2 = userFunc(2, switch2)
cell3 = userFunc(2, switch3)
和 2)
cell = func()
where func() is
public function
if(switch1) call userfunc1
if(switch2) call userfunc2
....
end function
让我们假设对功能进行了所有必要的调整。我的意思是,第一个会更快吗?
非常感谢!!!
更新:因此,如果 VBA 中没有真正的并发性,这是否意味着函数被顺序调用并且可以访问共享全局变量而不会出现锁定问题?我有一个几乎每个函数都使用的 API 对象,所以我可以共享它而不是每次使用它时都对其进行初始化吗?这个对象只是一个用来调用一些静态函数的API,对象本身没有任何修改或任何东西。