私は並列処理が必要なモジュールに取り組んでいる C++ の初心者です。
すべてのプロセスを作成した後すぐにメインが終了し、作成された新しいプロセスが彼らが終わるまで続けます。
スレッドを試したとき、メインが終了するとすぐに、すべての子が殺されなければ、メインはすべてのスレッドが完了するまで待機する必要があります。しかし、複数の DLL に存在する多くの主要なメソッドがあるため、このアプローチは必要ありません。すべての DLL で各メインを呼び出す必要があり、それらのメインは必要な数のプロセスを作成します。
次の構文を持つ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) として作成し、ここで使用する必要があることを理解しました。
私の理解は正しいですか?または、互いに独立している別のプロセスで関数を実際に呼び出す他の方法はありますか?
さらに情報が必要な場合はお知らせください