イベント (プログラミング)

出典: フリー百科事典『ウィキペディア(Wikipedia)』

イベント駆動 から転送)

イベントとは、コンピュータ・プログラムの実行に際し、何らかのアクションが発生した際にプログラムに発信される信号(これをメッセージと呼んだりする)をいう。

[編集] イベントドリブン

アクションの例としては、キーボードが押されたり、マウスがクリックされたりした場合にイベント信号が押したキーのデータとともに発信され、これを起爆剤として他のプログラムが動かされたりする(イベントドリブン)ようにプログラムすることが多い。

実際にイベント処理を言語の仕様として組み込んでいるプログラム言語では、特定のアクションが発生した場合に呼び出される関数インタフェースが決まっており、プログラマはインタフェースを除いてこの関数の中身を自由に記述することでイベントを表現することができる。

[編集] 排他制御におけるイベント

Windows(Win32系)では、イベントと呼ばれるオブジェクトがある。このオブジェクトは、前述のイベントドリブンとはなんら関係ない。イベントオブジェクトは、そのオブジェクトがシグナルされる事により、待機状態にあるスレッドを再開させるなど待機状態にある処理を起動する目的に使われる。プロセス間をまたいでイベントオブジェクトを共有できる事から、プロセス間通信に多用される。

イベント的事象を伝達する事に特化しており、待機中スレッドがイベント待ちから開放された時、自動的にイベントを非シグナル状態にするといった機能がある。セマフォと似ているが、決定的な違いは、イベントは資源数が常に1であり、また伝達できる情報はシグナル発生のみである点である。

イベントは、各APIごとに次のようなクラスまたは関数を通して提供されている。

  • Windows API - CreateEvent()
  • MFC - CEventクラス
  • .NET Framework - System.Threading.AutoResetEventクラス、System.Threading.MaualResetEventクラス

[編集] 関連項目

他の言語