我是 C++ 的新手,正在开发一个需要并行处理的模块。
我需要通过将不同的函数(执行某些特定任务)传递给从 C++ 中的 main (类似于_beginthread)创建的每个进程来创建 2 或 3 个进程,其中 main 应该在创建所有进程后立即退出,并且创建的新进程将继续,直到他们完成。
当我尝试使用线程时,我的主线程应该等到我的所有线程都完成,如果不是我的主线程退出,我所有的孩子都会被杀死。但我不想要这种方法,因为多个 DLL 中存在许多主要方法。我需要调用每个 DLL 中的每个 main,这些 main(s) 将负责创建所需数量的进程。
我尝试查看具有以下语法的CreateProcess函数。
BOOL WINAPI CreateProcess(
_In_opt_ LPCTSTR lpApplicationName,
_Inout_opt_ LPTSTR lpCommandLine,
_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ BOOL bInheritHandles,
_In_ DWORD dwCreationFlags,
_In_opt_ LPVOID lpEnvironment,
_In_opt_ LPCTSTR lpCurrentDirectory,
_In_ LPSTARTUPINFO lpStartupInfo,
_Out_ LPPROCESS_INFORMATION lpProcessInformation
);
基于此,我了解我一开始所说的将传递给进程的函数应该创建为单独的控制台应用程序(例如:exe),然后在此处使用。
我的理解正确吗?还是有任何其他方法可以真正调用彼此独立的单独进程中的函数?
如果需要任何进一步的信息,请告诉我