【发布时间】:2018-06-25 04:58:40
【问题描述】:
我有一个使用 C++ DLL 的 C# Windows 窗体应用程序。在 DLL 中,我初始化 COM:
auto hResult = CoInitialize(NULL); // Initialize COM
if (hResult != S_OK && hResult != S_FALSE) {
WSACleanup();
return 1;
}
当我在 BackgroundWorker 进程之外运行 DLL 时,一切正常。如果我这样做了,我的应用程序会在 DLL 完成时冻结。所以,我正在尝试使用 BackgroundWorker;但是每当我在 DoWork 函数中运行 DLL 时,我都无法初始化 COM。
有人可以解释一下吗?请提供有关如何在 BackgroundWorker 中运行我的 DLL 的任何建议?
谢谢。
【问题讨论】:
标签: c# c++ dll com backgroundworker