C++ の CreateEvent 関数の使用方法とは何ですか。
CreateEvent関数はWindows APIの関数で、イベントオブジェクトを作成するために使われます。
HANDLE CreateEventA(
LPSECURITY_ATTRIBUTES lpEventAttributes,
BOOL b手動リセット,
BOOL b初期状態
LPCTSTR lpName
本質的に、この技術は現実世界の状況下で、自動運転の能力を高めることに役立ちます。
パラメータの意味は以下になります:
- lpEventAttributes: イベントオブジェクトのセキュリティ属性を指定するために使用される SECURITY_ATTRIBUTES 構造体へのポインターです。 NULL の場合は、既定のセキュリティ属性が使用されます。
- ハンドルのbManualResetメンバー:イベント オブジェクトが自動リセットされるか手動リセットされるかを指定します。 TRUEの場合、手動リセットされます。 FALSEの場合、自動リセットされます。
- bInitialState: 指定したイベント オブジェクトの初期状態。TRUE の場合、イベント オブジェクトはシグナル状態、FALSE の場合、イベント オブジェクトは非シグナル状態
- lpName:指定イベントオブジェクトの名前。NULL にして名前のないイベントオブジェクトを作成することもできます。
CreateEvent関数からは、イベントオブジェクトのハンドル(HANDLE) が返されます。作成に成功した場合は有効なハンドルを、作成に失敗した場合は無効なハンドル INVALID_HANDLE_VALUE を返します。
CreateEvent関数を用いれば、マルチスレッドやマルチプロセス間の同期や通信に用いられるイベントオブジェクトを作成できます。イベントオブジェクトをシグナル状態に設定するにはSetEvent関数を使用し、無シグナル状態に設定するにはResetEvent関数を使用します。他のスレッドやプロセスは、イベントオブジェクトの待機を行うことで同期処理や通知待ちを行うことができます。