System.MonitorEnter
Delphi
function MonitorEnter(const AObject: TObject; Timeout: Cardinal = INFINITE): Boolean;
C++
extern DELPHI_PACKAGE bool __fastcall MonitorEnter(TObject* const AObject, unsigned Timeout = (unsigned)(0xffffffff));
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.pas System.hpp |
System | System |
説明
呼び出し側スレッド以外のすべてのスレッドから指定のオブジェクトにアクセスできないようにします。
MonitorEnter 関数を使用すると、呼び出し側スレッド以外のスレッドから AObject にアクセスできなくなります。
指定されたオブジェクトのロックを試みる前に、MonitorEnter は、そのオブジェクトを現在ロックしているスレッドが存在する場合、そのスレッドが MonitorEnter と MonitorExit を同じ回数呼び出したかどうかを検査します。呼び出した回数が異なる場合、前のスレッドが解放するまで、呼び出し側スレッドはそのオブジェクトにアクセスできなくなります。
MonitorEnter は、指定されたオブジェクトを Timeout パラメータで指定された時間だけロックしようと試みます。首尾よくロックできた場合、MonitorEnter は True を返し、そうでない場合は False を返します。