从线程调用ActiveX DLL - c#

我有一个ActiveX(COM)DLL,它可以进行Windows系统调用(例如ReadFile()和WriteFile())。我的GUI(使用Python或C#)在主GUI线程中创建DLL的实例。但是,为了从线程对其进行调用,无论使用C#还是Python,都必须在每个线程中创建DLL的新实例。 (作为一个补充说明,可以从C#中的线程调用原始实例,但这会阻塞主线程;在Python中执行此操作会使GUI崩溃。)有什么方法可以避免在线程中创建DLL的新实例?

需要使用原始DLL实例的原因:DLL允许连接到HID微控制器。 DLL提供了一个选项,允许仅一个微控制器专用的句柄。如果GUI设计人员选择此选项(在某些情况下是必需的),则第二个DLL实例将无法按预期运行,因为只有DLL的一个实例可以建立连接。

参考方案

我没有与Phyton合作,但是对于C#,我建议创建一个包含ActiveX作为静态公共属性的帮助程序类。让主线程创建ActiveX,然后从那里所有线程根据需要访问它。

加载/卸载带有C#问题的C dll - c#

我在使用外部本机DLL时遇到问题。我正在ASP.NET 1.1 Web应用程序上工作,并具有通过DLLImport指令加载的此DLL。这就是我映射DLL函数的方式: [DllImport("somedllname", CallingConvention=CallingConvention.StdCall)] public static e…

使用存储在与主程序不同的文件夹中的参考库(dll)? - c#

(这可能是一个很明显的问题,但我不确定该问Bing / Google是什么)在VS2008(C#Winforms)项目中,有大量引用的第三方库。该项目使用“ Copy Local = True”,以便使各种DLL文件最终与已编译的应用程序位于同一文件夹中。为了清理问题,我想修改程序,使库都在子文件夹下。例如:C:\ MyProgram \->主程序文件…

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

带后台线程的烧瓶应用程序 - python

我正在创建一个flask应用程序,对于一个请求,我需要运行一些长时间运行的作业,而无需在UI上等待。我将创建一个线程并将消息发送到UI。该线程将计算并更新数据库。但是,UI在提交后会看到一条消息。下面是我的实现,但是它正在运行线程,然后将输出发送到我不喜欢的UI。如何在后台运行此线程?@app.route('/someJob') def …