求助: 多线程计算 excel 文件结果不稳定
大佬们,早上好😄
能否帮忙看看以下代码问题出在哪里?多线程运行的结果不稳定。

代码有点长还嵌套了,需要点耐心看完,解释如下:
A2: 读取只有两列的表,拼接成字符串 "旧列名: 新列名,…" 的形式,用于后续 rename 的参数;
A3: 获取文件路径,其中的 replace 是替换符号,为了 Win 系统下的路径符号问题,替换后 Mac 和 Win 都能用;
A4: 也是拼接成字符串,只是把包含了函数,形式如下所示。因为用 xlsopen@r 流式打开之后,必须要 xlsclose,想着把不同 xlsopen 对象区分开来命名成 A,B,C,…,把不同的文件对象命名成 FNA,FNB,…, 把每一个 excel 对象解析后的结果命名成结果 A, 结果 B,…,目的是多线程运行的时候可以正确处理不同的对象(不知道对不对?)中间一大堆文字就是 A2 的 rename 列名。

A5: 多线程解析字符串,用 @m、fork 也行;
后面的几个步骤是序表的字段对齐,就不解释了。
主要的问题是 A5 多线程运行后,结果行数飘忽,有时候是对的,有时候会少,刚打开 IDE,首次运行时结果行数经常会少,但再次运行后结果会正确,这是在 Mac 版集算器里的现象,如果在 WIN 桌面版集算器里运行该代码,结果没有一次是正确的。但不用多线程时,把 A5 中的 @m 去掉,代码会返回正确的行数。
所以恳请大佬们帮忙看看问题出在哪里?结果的形式符合预期,但行数飘忽不定。
这里用多线程处理 excel 文件是不是用错了(A4 和 A5),我自己觉得思路没问题,不同的线程处理不同的对象,且不同的对象都有不同的命名,都是有针对性的操作,不至于存在误杀。xlsclose 有没有被正确关闭?是不是一定要关闭 xlsopen 对象?
涉及的文件因为是实例且文件较大,我就不公开上传了,有测试需要时再传。

经测试在新版本中已经修复,暂时可以先把选项 @m 去掉使用。
多谢大佬🙏
我太特么的需要这个并行处理 excel 文件了,至少可以省一半时间。
这周都在折腾这个 excel 合并的事情,疯癫的审计佬要 10 年的数据抽查样本😂