我有一个使用我创建的DLL的多线程应用程序。如果DLL尚未运行某个功能,则某个功能将失败。如何确保运行此应用程序功能的线程在继续之前等待该DLL函数完成?
可视化:
O = DLL函数完成
T =应用程序功能启动
App Thread:-------------- O ----------------------------- -----
DLL Thread:---------------------- T --------------------- -----
答案 0 :(得分:3)
几种方法:
答案 1 :(得分:1)
您可以使用命名事件。
首先为应用和DLL创建一个事件:
HANDLE myEvent = CreateEvent(NULL, false, false, L"MyEvent");
表示完全使用:
SetEvent(myEvent);
等待完成使用:
WaitForSingleObject(myEvent, INFINITE);