gpt4 book ai didi

c# - "Attempted to Read or write protected memory"并行读取 AutoCad 数据库时出错

转载 作者:太空狗 更新时间:2023-10-30 00:39:41 24 4
gpt4 key购买 nike

当我尝试执行一些并行操作时,出现“尝试读取或写入 protected 内存”。我正在将 AutoCad 数据库读入内存以进行一些数据挖掘。我可以使用常规 for 循环来执行此操作,但不能使用 Parallel.ForEach。有什么想法吗?

Parallel.ForEach(_Files, (currentFile) =>
{
var _File = currentFile;
using (Database _Database = new Database(false, true))
{
_Database.ReadDwgFile(_File, FileOpenMode.OpenForReadAndAllShare, false, null);
_Database.CloseInput(true);
// Do Stuff
}
});

最佳答案

Miiir 所述, AutoCAD 不支持多线程。

解决方法可能是使用 AutoCAD 控制台 (accoreconsole.exe)。如果您有外部应用程序 (.exe),请使用它来调用控制台的多个实例,您可以在其中 NETLOAD 一个将执行数据挖掘的 .NET 插件。由于每个控制台实例都是一个单独的应用程序,因此不存在多线程。

我在 8 核计算机上使用 AutoCAD 控制台进行了一些测试。如您所见,整个过程花费的时间更少(与按顺序运行相比)。查看我写的这个 PDF:Using .NET Programming to Create New Possibilities with the AutoCAD® Core Console

enter image description here

关于c# - "Attempted to Read or write protected memory"并行读取 AutoCad 数据库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33765794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com