【问题标题】:Program waits for API call to finish程序等待 API 调用完成
【发布时间】:2019-03-25 20:39:46
【问题描述】:

所以我正在做一个项目,我通过 Inventor API 调用 Inventor 中的导出窗口,如下所示:

Dim Commander As CommandManager
Commander = ThisApplication.CommandManager
Dim Controller As ControlDefinition
Controller = Commander.ControlDefinitions.Item("AppFileExportCADFormatCmd")
Call Controller.Execute()

这段代码可以很好地在 Inventor 中打开“另存为”窗口,但我的 VB 程序将挂起

Call Controller.Execute()

直到我关闭“另存为”窗口。

我的目标是打开窗口,然后自动按下保存按钮,但唯一阻止我的是呼叫线路的“冻结”。

【问题讨论】:

  • 您是否尝试过在另一个线程上执行此操作,甚至使用任务?
  • 不熟悉 Inventor 但另存为对话框通常是模态对话框。
  • @Mary 正确,但是用户可能已经在后台发生了一些事情,并且调用这将是一个阻塞调用......最好是用户更新帖子以获得更好的视图他们在做什么。
  • @Çöđěxěŕ 所以我让它工作了。非常感谢!!
  • @Çöđěxěŕ 我用了两个线程(我更新了帖子)。

标签: .net vb.net api autodesk-inventor


【解决方案1】:

所以我开始使用我想要同时运行的两个 Subs 的地址定义两个新线程。然后启动两个线程。

这是代码:

Dim CADFastExportThread As New Thread(AddressOf CADFastExport)
Dim CADFastSaveThread As New Thread(AddressOf CADFastSave)
CADFastExportThread.Start()
CADFastSaveThread.Start()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    相关资源
    最近更新 更多