[前へ] [目次へ] [次へ]

HThread (ハンドル、ネイティブクラス)


このクラスはスレッドハンドルを扱うクラスです。
このハンドルが捕捉するオブジェクトは FGESThread クラスのインスタンスです。

ハンドルはFGES標準のメモリ管理外で動作するオブジェクトを制御するためのもので、
存在するハンドルの数は常に管理されています。
ハンドルを代入するとハンドルがコピーされ、二つのハンドルは同じオブジェクトを共有します。
ハンドルクラスには制御対象のクラスのメンバも定義されていて、
ハンドルクラスはその呼び出しを捕捉している目標のオブジェクトにリダイレクトします。

スレッドオブジェクトは自身が実行中のメソッドがなく、
自身を示すスレッドハンドルが一つも存在しなくなると消滅します。

このクラスのインスタンスを作成するとスレッドオブジェクトを捕捉していない空ハンドルが作成されます。
空ハンドルは有効なハンドルを代入するまで他のクラスメンバメソッドを使用できません。
空ハンドルに有効なハンドルを代入すると有効なハンドルとして使用できるようになります。
有効なハンドルに別のハンドルを代入すると代入したハンドルとして使用できるようになります。
この時それまで割り当てられていたスレッドオブジェクトとのリンクは切断されます。

●継承

   このクラスは継承をしていません。

●インターフェイスとインターフェイスメソッド

   このクラスはインターフェイスの実装宣言をしていません。

●クラスメソッド

   このクラスはクラスメソッドを持っていません。

●クラスメンバメソッド

名前概要
public操作メソッド #operator=ハンドルを代入します
public比較・判定メソッドconst #operator==ハンドルを比較します
public比較・判定メソッドconst #operator!=ハンドルを比較します
public操作メソッド Releaseハンドルを切り離します
public操作メソッド Callこのスレッドでメソッドを呼び出します
public操作メソッド Reserveこのスレッドでメソッドを予約します
public操作メソッド CallVこのスレッドでメソッドを呼び出します
public操作メソッド ReserveVこのスレッドでメソッドを予約します
public操作メソッド ConstCallこのスレッドでメソッドを呼び出します
public操作メソッド ConstReserveこのスレッドでメソッドを予約します
public操作メソッド ConstCallVこのスレッドでメソッドを呼び出します
public操作メソッド ConstReserveVこのスレッドでメソッドを予約します
public操作メソッド CallIこのスレッドでメソッドを呼び出します
public操作メソッド ReserveIこのスレッドでメソッドを予約します
public操作メソッド CallIVこのスレッドでメソッドを呼び出します
public操作メソッド ReserveIVこのスレッドでメソッドを予約します
public操作メソッド SyncCallこのスレッドでメソッドを呼び出し、完了待ちします
public操作メソッド SyncReserveこのスレッドでメソッドを予約し、完了待ちします
public操作メソッド SyncCallVこのスレッドでメソッドを呼び出し、完了待ちします
public操作メソッド SyncReserveVこのスレッドでメソッドを予約し、完了待ちします
public操作メソッド SyncConstCallこのスレッドでメソッドを呼び出し、完了待ちします
public操作メソッド SyncConstReserveこのスレッドでメソッドを予約し、完了待ちします
public操作メソッド SyncConstCallVこのスレッドでメソッドを呼び出し、完了待ちします
public操作メソッド SyncConstReserveVこのスレッドでメソッドを予約し、完了待ちします
public操作メソッド SyncCallIこのスレッドでメソッドを呼び出し、完了待ちします
public操作メソッド SyncReserveIこのスレッドでメソッドを予約し、完了待ちします
public操作メソッド SyncCallIVこのスレッドでメソッドを呼び出し、完了待ちします
public操作メソッド SyncReserveIVこのスレッドでメソッドを予約し、完了待ちします
public操作メソッド HalfSyncCallこのスレッドでメソッドを呼び出し、開始待ちします
public操作メソッド HalfSyncReserveこのスレッドでメソッドを予約し、開始待ちします
public操作メソッド HalfSyncCallVこのスレッドでメソッドを呼び出し、開始待ちします
public操作メソッド HalfSyncReserveVこのスレッドでメソッドを予約し、開始待ちします
public操作メソッド HalfSyncConstCallこのスレッドでメソッドを呼び出し、開始待ちします
public操作メソッド HalfSyncConstReserveこのスレッドでメソッドを予約し、開始待ちします
public操作メソッド HalfSyncConstCallVこのスレッドでメソッドを呼び出し、開始待ちします
public操作メソッド HalfSyncConstReserveVこのスレッドでメソッドを予約し、開始待ちします
public操作メソッド HalfSyncCallIこのスレッドでメソッドを呼び出し、開始待ちします
public操作メソッド HalfSyncReserveIこのスレッドでメソッドを予約し、開始待ちします
public操作メソッド HalfSyncCallIVこのスレッドでメソッドを呼び出し、開始待ちします
public操作メソッド HalfSyncReserveIVこのスレッドでメソッドを予約し、開始待ちします
public操作メソッド Suspendこのスレッドを休止状態にします
public操作メソッド Resumeこのスレッドを休止状態から復帰します
public操作メソッド Executeこのスレッドを実行します
public取得メソッドconst GetStateこのスレッドの状態を取得します
public操作メソッド Haltこのスレッドで実行中の応答するメソッドを中断します
public操作メソッド CreateChildThreadこのスレッドを親とする子スレッドを生成します
public操作メソッド BindFGES VMの実行をこのスレッドに拘束します
public操作メソッド UnBindFGES VMの実行の拘束を解除します

●クラス共有変数

名前概要
readable EMPTY状態定数
readable SUSPEND状態定数
readable WAIT状態定数
readable COMPLETE状態定数
readable PAUSE状態定数
readable TIMEOUT状態定数
readable CHILDONLY状態定数

●インスタンス変数

   このクラスはインスタンス変数を持っていません。


●C++レベル追加情報

クラスID: FGES_CLASSID_HTHREAD
クラス名: FGESHThread



HThread::#operator=

public SelfType@ #operator=( HThread v)

   このハンドルに v のハンドルをコピーします。
   このハンドルが空ハンドルではなかった場合、
   既存のオブジェクトとの関係は切断されます。

戻り値: this を返します。

HThread v :複製するスレッドハンドル

先頭へ


HThread::#operator==

public Bool #operator==( HThread v)const

   このハンドルと v のハンドルが同じであれば真を返します。

戻り値:このハンドルと v のハンドルが同じであれば真を返します。

HThread v :比較するスレッドハンドル

先頭へ


HThread::#operator!=

public Bool #operator!=( HThread v)const

   このハンドルと v のハンドルが異なれば真を返します。

戻り値:このハンドルと v のハンドルが異なれば真を返します。

HThread v :比較するスレッドハンドル

先頭へ


HThread::Release

public Bool Release()

   このハンドルが捕捉しているオブジェクトとの関係を切断します。
   この呼び出し後、このハンドルは空ハンドルになります。

戻り値:成功すると真を返します。

先頭へ


HThread::Call

public Bool Call(editable Any? hostobj, FGESMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出します。
   呼び出したメソッドは次に目標のスレッドが実行権を取得した時に実行が開始されます。
   ただし、実行が開始される前にさらに呼び出しが行われた場合はその完了まで実行が開始されません。
   
   引数のオブジェクトは実行が開始されるまで存在していなければいけません。
   ローカル変数や一時オブジェクトを引数に使うと例外の原因になります。
   
   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   また、呼び出したメソッドの戻り値は取得できません。

戻り値:呼び出しに成功すると真を返します。

editable Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの引数としてそのまま使われます

先頭へ


HThread::Reserve

public Bool Reserve(editable Any? hostobj, FGESMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを予約します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   引数のオブジェクトは実行が開始されるまで存在していなければいけません。
   ローカル変数や一時オブジェクトを引数に使うと例外の原因になります。

   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   また、予約したメソッドの戻り値は取得できません。

戻り値:予約に成功すると真を返します。

editable Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの引数としてそのまま使われます

先頭へ


HThread::CallV

public Bool CallV(editable Any? hostobj, FGESMethod callmethod,
             Arguments arg_list,editable Any? after_delete_obj=NULL)


   このハンドルが示すスレッドコンテキストでメソッドを呼び出します。
   呼び出したメソッドは次に目標のスレッドが実行権を取得した時に実行が開始されます。
   ただし、実行が開始される前にさらに呼び出しが行われた場合はその完了まで実行が開始されません。
   
   引数のオブジェクトは実行が開始されるまで存在していなければいけません。
   ローカル変数や一時オブジェクトを引数に使うと例外の原因になります。
   
   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   また、呼び出したメソッドの戻り値は取得できません。

   after_delete_obj に指定するオブジェクトはローカル変数か、メモリ管理オブジェクトに直接接続されている必要があり、
   このメソッドは指定されたオブジェクトのメモリ管理をネイティブ管理に変更します。
   指定されたオブジェクトの寿命は呼び出したメソッドの完了までになります。
   
戻り値:呼び出しに成功すると真を返します。

editable Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの引数として展開されます
editable Any? after_delete_obj=NULL :呼び出したメソッドの完了後に削除するオブジェクト。
      空参照を指定した場合は無視します。

先頭へ


HThread::ReserveV

public Bool ReserveV(editable Any? hostobj, FGESMethod callmethod,
             Arguments arg_list,editable Any? after_delete_obj=NULL)


   このハンドルが示すスレッドコンテキストでメソッドを予約します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   引数のオブジェクトは実行が開始されるまで存在していなければいけません。
   ローカル変数や一時オブジェクトを引数に使うと例外の原因になります。

   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   また、予約したメソッドの戻り値は取得できません。

   after_delete_obj に指定するオブジェクトはローカル変数か、メモリ管理オブジェクトに直接接続されている必要があり、
   このメソッドは指定されたオブジェクトのメモリ管理をネイティブ管理に変更します。
   指定されたオブジェクトの寿命は呼び出したメソッドの完了までになります。
   
戻り値:予約に成功すると真を返します。

editable Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの引数として展開されます
editable Any? after_delete_obj=NULL :呼び出したメソッドの完了後に削除するオブジェクト。
      空参照を指定した場合は無視します。

先頭へ


HThread::ConstCall

public Bool ConstCall( Any? hostobj, FGESMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出します。
   呼び出したメソッドは次に目標のスレッドが実行権を取得した時に実行が開始されます。
   ただし、実行が開始される前にさらに呼び出しが行われた場合はその完了まで実行が開始されません。
   
   引数のオブジェクトは実行が開始されるまで存在していなければいけません。
   ローカル変数や一時オブジェクトを引数に使うと例外の原因になります。
   
   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   さらに、呼び出しのホストオブジェクトが readonly なので、
   呼び出すメソッドは const メソッドでなければいけません。
   また、呼び出したメソッドの戻り値は取得できません。

戻り値:呼び出しに成功すると真を返します。

Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの引数としてそのまま使われます

先頭へ


HThread::ConstReserve

public Bool ConstReserve( Any? hostobj, FGESMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを予約します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   引数のオブジェクトは実行が開始されるまで存在していなければいけません。
   ローカル変数や一時オブジェクトを引数に使うと例外の原因になります。

   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   さらに、呼び出しのホストオブジェクトが readonly なので、
   呼び出すメソッドは const メソッドでなければいけません。
   また、予約したメソッドの戻り値は取得できません。

戻り値:予約に成功すると真を返します。

Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの引数としてそのまま使われます

先頭へ


HThread::ConstCallV

public Bool ConstCallV( Any? hostobj, FGESMethod callmethod,
             Arguments arg_list,editable Any? after_delete_obj=NULL)


   このハンドルが示すスレッドコンテキストでメソッドを呼び出します。
   呼び出したメソッドは次に目標のスレッドが実行権を取得した時に実行が開始されます。
   ただし、実行が開始される前にさらに呼び出しが行われた場合はその完了まで実行が開始されません。
   
   引数のオブジェクトは実行が開始されるまで存在していなければいけません。
   ローカル変数や一時オブジェクトを引数に使うと例外の原因になります。
   
   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   さらに、呼び出しのホストオブジェクトが readonly なので、
   呼び出すメソッドは const メソッドでなければいけません。
   また、呼び出したメソッドの戻り値は取得できません。

   after_delete_obj に指定するオブジェクトはローカル変数か、メモリ管理オブジェクトに直接接続されている必要があり、
   このメソッドは指定されたオブジェクトのメモリ管理をネイティブ管理に変更します。
   指定されたオブジェクトの寿命は呼び出したメソッドの完了までになります。
   
戻り値:呼び出しに成功すると真を返します。

Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの引数として展開されます
editable Any? after_delete_obj=NULL :呼び出したメソッドの完了後に削除するオブジェクト。
      空参照を指定した場合は無視します。

先頭へ


HThread::ConstReserveV

public Bool ConstReserveV( Any? hostobj, FGESMethod callmethod,
             Arguments arg_list,editable Any? after_delete_obj=NULL)


   このハンドルが示すスレッドコンテキストでメソッドを予約します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   引数のオブジェクトは実行が開始されるまで存在していなければいけません。
   ローカル変数や一時オブジェクトを引数に使うと例外の原因になります。

   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   さらに、呼び出しのホストオブジェクトが readonly なので、
   呼び出すメソッドは const メソッドでなければいけません。
   また、予約したメソッドの戻り値は取得できません。

   after_delete_obj に指定するオブジェクトはローカル変数か、メモリ管理オブジェクトに直接接続されている必要があり、
   このメソッドは指定されたオブジェクトのメモリ管理をネイティブ管理に変更します。
   指定されたオブジェクトの寿命は呼び出したメソッドの完了までになります。
   
戻り値:予約に成功すると真を返します。

Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの引数として展開されます
editable Any? after_delete_obj=NULL :呼び出したメソッドの完了後に削除するオブジェクト。
      空参照を指定した場合は無視します。

先頭へ


HThread::CallI

public Bool CallI( INativeMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出します。
   呼び出したメソッドは次に目標のスレッドが実行権を取得した時に実行が開始されます。
   ただし、実行が開始される前にさらに呼び出しが行われた場合はその完了まで実行が開始されません。
   
   引数のオブジェクトは実行が開始されるまで存在していなければいけません。
   ローカル変数や一時オブジェクトを引数に使うと例外の原因になります。
   
   呼び出すメソッドとして BoundMethod のインスタンスを指定できます。
   また、呼び出したメソッドの戻り値は取得できません。

戻り値:呼び出しに成功すると真を返します。

INativeMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの引数としてそのまま使われます

先頭へ


HThread::ReserveI

public Bool ReserveI( INativeMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを予約します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   引数のオブジェクトは実行が開始されるまで存在していなければいけません。
   ローカル変数や一時オブジェクトを引数に使うと例外の原因になります。

   呼び出すメソッドとして BoundMethod のインスタンスを指定できます。
   また、予約したメソッドの戻り値は取得できません。

戻り値:予約に成功すると真を返します。

INativeMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの引数としてそのまま使われます

先頭へ


HThread::CallIV

public Bool CallIV( INativeMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出します。
   呼び出したメソッドは次に目標のスレッドが実行権を取得した時に実行が開始されます。
   ただし、実行が開始される前にさらに呼び出しが行われた場合はその完了まで実行が開始されません。
   
   引数のオブジェクトは実行が開始されるまで存在していなければいけません。
   ローカル変数や一時オブジェクトを引数に使うと例外の原因になります。
   
   呼び出すメソッドとして BoundMethod のインスタンスを指定できます。
   また、呼び出したメソッドの戻り値は取得できません。

戻り値:呼び出しに成功すると真を返します。

INativeMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの引数として展開されます

先頭へ


HThread::ReserveIV

public Bool ReserveIV( INativeMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを予約します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   引数のオブジェクトは実行が開始されるまで存在していなければいけません。
   ローカル変数や一時オブジェクトを引数に使うと例外の原因になります。

   呼び出すメソッドとして BoundMethod のインスタンスを指定できます。
   また、予約したメソッドの戻り値は取得できません。

戻り値:予約に成功すると真を返します。

INativeMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの引数として展開されます

先頭へ


HThread::SyncCall

public Bool SyncCall(editable Any? hostobj, FGESMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出し、完了まで待機します。
   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   また、呼び出したメソッドの戻り値は取得できません。

戻り値:呼び出しに成功すると真を返します。

editable Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの引数としてそのまま使われます

先頭へ


HThread::SyncReserve

public Bool SyncReserve(editable Any? hostobj, FGESMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを予約し、完了まで待機します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   また、予約したメソッドの戻り値は取得できません。

戻り値:予約に成功すると真を返します。

editable Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの引数としてそのまま使われます

先頭へ


HThread::SyncCallV

public Bool SyncCallV(editable Any? hostobj, FGESMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出し、完了まで待機します。
   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   また、呼び出したメソッドの戻り値は取得できません。

戻り値:呼び出しに成功すると真を返します。

editable Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの引数として展開されます

先頭へ


HThread::SyncReserveV

public Bool SyncReserveV(editable Any? hostobj, FGESMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを予約し、完了まで待機します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   また、予約したメソッドの戻り値は取得できません。

戻り値:予約に成功すると真を返します。

editable Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの引数として展開されます

先頭へ


HThread::SyncConstCall

public Bool SyncConstCall( Any? hostobj, FGESMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出し、完了まで待機します。
   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   さらに、呼び出しのホストオブジェクトが readonly なので、
   呼び出すメソッドは const メソッドでなければいけません。
   また、呼び出したメソッドの戻り値は取得できません。

戻り値:呼び出しに成功すると真を返します。

Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの引数としてそのまま使われます

先頭へ


HThread::SyncConstReserve

public Bool SyncConstReserve( Any? hostobj, FGESMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを予約し、完了まで待機します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   さらに、呼び出しのホストオブジェクトが readonly なので、
   呼び出すメソッドは const メソッドでなければいけません。
   また、予約したメソッドの戻り値は取得できません。

戻り値:予約に成功すると真を返します。

Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの引数としてそのまま使われます

先頭へ


HThread::SyncConstCallV

public Bool SyncConstCallV( Any? hostobj, FGESMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出し、完了まで待機します。
   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   さらに、呼び出しのホストオブジェクトが readonly なので、
   呼び出すメソッドは const メソッドでなければいけません。
   また、呼び出したメソッドの戻り値は取得できません。

戻り値:呼び出しに成功すると真を返します。

Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの引数として展開されます

先頭へ


HThread::SyncConstReserveV

public Bool SyncConstReserveV( Any? hostobj, FGESMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを予約し、完了まで待機します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   さらに、呼び出しのホストオブジェクトが readonly なので、
   呼び出すメソッドは const メソッドでなければいけません。
   また、予約したメソッドの戻り値は取得できません。

戻り値:予約に成功すると真を返します。

Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの引数として展開されます

先頭へ


HThread::SyncCallI

public Bool SyncCallI( INativeMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出し、完了まで待機します。
   呼び出すメソッドとして BoundMethod のインスタンスを指定できます。
   また、呼び出したメソッドの戻り値は取得できません。

戻り値:呼び出しに成功すると真を返します。

INativeMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの引数としてそのまま使われます

先頭へ


HThread::SyncReserveI

public Bool SyncReserveI( INativeMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを予約し、完了まで待機します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   呼び出すメソッドとして BoundMethod のインスタンスを指定できます。
   また、予約したメソッドの戻り値は取得できません。

戻り値:予約に成功すると真を返します。

INativeMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの引数としてそのまま使われます

先頭へ


HThread::SyncCallIV

public Bool SyncCallIV( INativeMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出し、完了まで待機します。
   呼び出すメソッドとして BoundMethod のインスタンスを指定できます。
   また、呼び出したメソッドの戻り値は取得できません。

戻り値:呼び出しに成功すると真を返します。

INativeMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの引数として展開されます

先頭へ


HThread::SyncReserveIV

public Bool SyncReserveIV( INativeMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを予約し、完了まで待機します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   呼び出すメソッドとして BoundMethod のインスタンスを指定できます。
   また、予約したメソッドの戻り値は取得できません。

戻り値:予約に成功すると真を返します。

INativeMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの引数として展開されます

先頭へ


HThread::HalfSyncCall

public Bool HalfSyncCall(editable Any? hostobj, FGESMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出し、開始するまで待機します。
   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   また、呼び出したメソッドの戻り値は取得できません。
   
   このメソッドは callmethod を呼び出す時、
   第1引数に editable Bool 型のオブジェクトを追加して渡します。
   このオブジェクトの値を真に設定すると、メソッドが開始したとみなされ待機を終了します。

戻り値:呼び出しに成功すると真を返します。

editable Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの第2引数以降としてそのまま使われます

先頭へ


HThread::HalfSyncReserve

public Bool HalfSyncReserve(editable Any? hostobj, FGESMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを予約し、開始するまで待機します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   また、予約したメソッドの戻り値は取得できません。

   このメソッドは callmethod を呼び出す時、
   第1引数に editable Bool 型のオブジェクトを追加して渡します。
   このオブジェクトの値を真に設定すると、メソッドが開始したとみなされ待機を終了します。

戻り値:予約に成功すると真を返します。

editable Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの第2引数以降としてそのまま使われます

先頭へ


HThread::HalfSyncCallV

public Bool HalfSyncCallV(editable Any? hostobj, FGESMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出し、開始するまで待機します。
   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   また、呼び出したメソッドの戻り値は取得できません。

   このメソッドは callmethod を呼び出す時、
   第1引数に editable Bool 型のオブジェクトを追加して渡します。
   このオブジェクトの値を真に設定すると、メソッドが開始したとみなされ待機を終了します。

戻り値:呼び出しに成功すると真を返します。

editable Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの第2引数以降として展開されます

先頭へ


HThread::HalfSyncReserveV

public Bool HalfSyncReserveV(editable Any? hostobj, FGESMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを予約し、開始するまで待機します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   また、予約したメソッドの戻り値は取得できません。

   このメソッドは callmethod を呼び出す時、
   第1引数に editable Bool 型のオブジェクトを追加して渡します。
   このオブジェクトの値を真に設定すると、メソッドが開始したとみなされ待機を終了します。

戻り値:予約に成功すると真を返します。

editable Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの第2引数以降として展開されます

先頭へ


HThread::HalfSyncConstCall

public Bool HalfSyncConstCall( Any? hostobj, FGESMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出し、開始するまで待機します。
   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   さらに、呼び出しのホストオブジェクトが readonly なので、
   呼び出すメソッドは const メソッドでなければいけません。
   また、呼び出したメソッドの戻り値は取得できません。

   このメソッドは callmethod を呼び出す時、
   第1引数に editable Bool 型のオブジェクトを追加して渡します。
   このオブジェクトの値を真に設定すると、メソッドが開始したとみなされ待機を終了します。

戻り値:呼び出しに成功すると真を返します。

Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの第2引数以降としてそのまま使われます

先頭へ


HThread::HalfSyncConstReserve

public Bool HalfSyncConstReserve( Any? hostobj, FGESMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを予約し、開始するまで待機します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   さらに、呼び出しのホストオブジェクトが readonly なので、
   呼び出すメソッドは const メソッドでなければいけません。
   また、予約したメソッドの戻り値は取得できません。

   このメソッドは callmethod を呼び出す時、
   第1引数に editable Bool 型のオブジェクトを追加して渡します。
   このオブジェクトの値を真に設定すると、メソッドが開始したとみなされ待機を終了します。

戻り値:予約に成功すると真を返します。

Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの第2引数以降としてそのまま使われます

先頭へ


HThread::HalfSyncConstCallV

public Bool HalfSyncConstCallV( Any? hostobj, FGESMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出し、開始するまで待機します。
   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   さらに、呼び出しのホストオブジェクトが readonly なので、
   呼び出すメソッドは const メソッドでなければいけません。
   また、呼び出したメソッドの戻り値は取得できません。

   このメソッドは callmethod を呼び出す時、
   第1引数に editable Bool 型のオブジェクトを追加して渡します。
   このオブジェクトの値を真に設定すると、メソッドが開始したとみなされ待機を終了します。

戻り値:呼び出しに成功すると真を返します。

Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの第2引数以降として展開されます

先頭へ


HThread::HalfSyncConstReserveV

public Bool HalfSyncConstReserveV( Any? hostobj, FGESMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを予約し、開始するまで待機します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   hostobj に指定するオブジェクトは呼び出すメソッドの対象クラスまたは、
   その派生クラスでなければいけません。
   さらに、呼び出しのホストオブジェクトが readonly なので、
   呼び出すメソッドは const メソッドでなければいけません。
   また、予約したメソッドの戻り値は取得できません。

   このメソッドは callmethod を呼び出す時、
   第1引数に editable Bool 型のオブジェクトを追加して渡します。
   このオブジェクトの値を真に設定すると、メソッドが開始したとみなされ待機を終了します。

戻り値:予約に成功すると真を返します。

Any? hostobj :呼び出しのホストオブジェクト
FGESMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの第2引数以降として展開されます

先頭へ


HThread::HalfSyncCallI

public Bool HalfSyncCallI( INativeMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出し、開始するまで待機します。
   呼び出すメソッドとして BoundMethod のインスタンスを指定できます。
   また、呼び出したメソッドの戻り値は取得できません。

   このメソッドは callmethod を呼び出す時、
   第1引数に editable Bool 型のオブジェクトを追加して渡します。
   このオブジェクトの値を真に設定すると、メソッドが開始したとみなされ待機を終了します。

戻り値:呼び出しに成功すると真を返します。

INativeMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの第2引数以降としてそのまま使われます

先頭へ


HThread::HalfSyncReserveI

public Bool HalfSyncReserveI( INativeMethod callmethod,...)

   このハンドルが示すスレッドコンテキストでメソッドを予約し、開始するまで待機します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   呼び出すメソッドとして BoundMethod のインスタンスを指定できます。
   また、予約したメソッドの戻り値は取得できません。

   このメソッドは callmethod を呼び出す時、
   第1引数に editable Bool 型のオブジェクトを追加して渡します。
   このオブジェクトの値を真に設定すると、メソッドが開始したとみなされ待機を終了します。

戻り値:予約に成功すると真を返します。

INativeMethod callmethod :呼び出すメソッド
可変長引数:呼び出すメソッドの第2引数以降としてそのまま使われます

先頭へ


HThread::HalfSyncCallIV

public Bool HalfSyncCallIV( INativeMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを呼び出し、開始するまで待機します。
   呼び出すメソッドとして BoundMethod のインスタンスを指定できます。
   また、呼び出したメソッドの戻り値は取得できません。

   このメソッドは callmethod を呼び出す時、
   第1引数に editable Bool 型のオブジェクトを追加して渡します。
   このオブジェクトの値を真に設定すると、メソッドが開始したとみなされ待機を終了します。

戻り値:呼び出しに成功すると真を返します。

INativeMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの第2引数以降として展開されます

先頭へ


HThread::HalfSyncReserveIV

public Bool HalfSyncReserveIV( INativeMethod callmethod, Arguments arg_list)

   このハンドルが示すスレッドコンテキストでメソッドを予約し、開始するまで待機します。
   予約したメソッドは目標のスレッドの呼び出しスタックの最下層に挿入され、
   目標のスレッドが現在実行しているメソッドが全て終了した後、   実行が開始されます。

   呼び出すメソッドとして BoundMethod のインスタンスを指定できます。
   また、予約したメソッドの戻り値は取得できません。

   このメソッドは callmethod を呼び出す時、
   第1引数に editable Bool 型のオブジェクトを追加して渡します。
   このオブジェクトの値を真に設定すると、メソッドが開始したとみなされ待機を終了します。

戻り値:予約に成功すると真を返します。

INativeMethod callmethod :呼び出すメソッド
Arguments arg_list :呼び出すメソッドの第2引数以降として展開されます

先頭へ


HThread::Suspend

public Bool Suspend()

   このハンドルが示すスレッドを休止状態にします。
   休止状態になったスレッドは解除されるまで実行されなくなります。
   
   既に休止状態であった場合何も起こりません。

戻り値:この呼び出しで状態が変化した場合、真を返します。

先頭へ


HThread::Resume

public Bool Resume()

   このハンドルが示すスレッドの休止状態を解除します。
   
   目標のスレッドが休止状態でなかった場合何も起こりません。

戻り値:この呼び出しで状態が変化した場合、真を返します。

先頭へ


HThread::Execute

public THREAD_RESULT Execute()

   このハンドルが示すスレッドを一定時間実行します。
   実行時間は呼び出し元のスレッドの割り当て時間から消費されます。
   
   結果は HThread クラスに定義された定数(クラス共有変数)で返されます。

戻り値:以下のいずれかを返します。
識別子意味
HThread::EMPTY目標のスレッドで実行するものは何もありませんでした。
HThread::SUSPEND目標のスレッドは休止状態のため、何も実行されませんでした。
HThread::WAIT目標のスレッドは待機状態のため、何も実行されませんでした。
この状態はネイティブレベルの待機状態でのみ反応し、FGESレベルの待機では設定されません。
HThread::COMPLETE目標のスレッドで実行中のメソッドはこの呼び出しで全て完了しました。
HThread::PAUSE目標のスレッドの実行中にスレッド切り替え命令が実行されました。
HThread::TIMEOUT目標のスレッドは規定時間一杯に実行され、時間切れで一時停止しました。

先頭へ


HThread::GetState

public THREAD_RESULT GetState()const

   このハンドルが示すスレッドの現在の状態を取得します。
   
   結果は HThread クラスに定義された定数(クラス共有変数)で返されます。

戻り値:以下のいずれかを返します。
識別子意味
HThread::EMPTY目標のスレッドは何もしていません。
HThread::SUSPEND目標のスレッドは休止状態です。
HThread::WAIT目標のスレッドは待機状態です
この状態はネイティブレベルの待機状態でのみ反応し、FGESレベルの待機では設定されません。
HThread::PAUSE目標のスレッドは実行時間の割り当て待ちです。
HThread::CHILDONLY目標のスレッド自身は何もしていませんが、子スレッドにタスクがあります。

先頭へ


HThread::Halt

public Bool Halt( HaltID halt_id)

   このハンドルが示すスレッドで実行中の指定した中断識別子に応答するメソッドを中断します。
   
   このメソッドは対象のスレッドで実行中の、指定した中断識別子に対する中断可能宣言をしている、
   最も現在の実行位置に近いメソッドを対象として中断を要求します。
   対象となるメソッドが存在しない場合、このメソッドは失敗します。
   中断の要求が成功した場合、そのメソッドより実行位置に近いメソッドのうち、
   中断可能宣言をしているメソッド全ても中断されます。
   中断の詳細は スレッド の項目を参照してください。

HaltID halt_id :中断要求する中断識別子

先頭へ


HThread::CreateChildThread

public HThread CreateChildThread()

   このハンドルが示すスレッドを親とする子スレッドを生成します。
   
   このメソッドが生成する子スレッドは親スレッドから実行時間を供給されます。
   子スレッドの詳細は スレッド の項目を参照してください。

戻り値:生成した子スレッドを示すスレッドハンドル。

先頭へ


HThread::Bind

public void Bind()

   FGES VMの実行をこのハンドルが示すスレッドに拘束します。
   
   スレッドを拘束している間、
   FGES VMスレッドスケジューラは拘束しているスレッドのみに実行時間を供給します。
   ただし、スレッドを指定して直接実行した場合は当該スレッドが実行されます。
   スレッドの拘束はネイティブの FGESThread::ThreadExec や HThread::Execute の処理を妨げるものではありません。

   また、拘束しているスレッドがクリティカルセクションで待機状態になった場合、
   該当するクリティカルセクションの実行権を持っているスレッドを代わりに駆動し、デッドロックの回避を試みます。

   スレッドを拘束したままタスクを全て完了させるべきではありません。
   スレッドの拘束を行う場合は原則として当該スレッドで拘束を解除してください。
   
   スレッドを長時間拘束すると他のFGESスレッドが動作せず問題が起きる可能性があります。
   スレッドの拘束はできる限り短時間に留めてください。
   
   既にスレッドが拘束されている状態でこのメソッドが呼び出された場合、
   スレッドの拘束は累積し、拘束したのと逆順で拘束を解除しなければいけません。
   
先頭へ


HThread::UnBind

public Bool UnBind()

   このハンドルが示すスレッドが行っているスレッドの拘束を解除します。
   
   スレッドが累積して拘束されている場合、拘束の解除は逆順に行わなければいけません。
   
戻り値:拘束解除に成功すると真を返します。
   
先頭へ


HThread::EMPTY

readable readonly THREAD_RESULT EMPTY

   Execute および GetState メソッドで使用する状態定数です。
   意味は各メソッドを参照してください。

先頭へ


HThread::SUSPEND

readable readonly THREAD_RESULT SUSPEND

   Execute および GetState メソッドで使用する状態定数です。
   意味は各メソッドを参照してください。

先頭へ


HThread::WAIT

readable readonly THREAD_RESULT WAIT

   Execute および GetState メソッドで使用する状態定数です。
   意味は各メソッドを参照してください。

先頭へ


HThread::COMPLETE

readable readonly THREAD_RESULT COMPLETE

   Execute および GetState メソッドで使用する状態定数です。
   意味は各メソッドを参照してください。

先頭へ


HThread::PAUSE

readable readonly THREAD_RESULT PAUSE

   Execute および GetState メソッドで使用する状態定数です。
   意味は各メソッドを参照してください。

先頭へ


HThread::TIMEOUT

readable readonly THREAD_RESULT TIMEOUT

   Execute および GetState メソッドで使用する状態定数です。
   意味は各メソッドを参照してください。

先頭へ


HThread::CHILDONLY

readable readonly THREAD_RESULT CHILDONLY

   Execute および GetState メソッドで使用する状態定数です。
   意味は各メソッドを参照してください。

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2022/05/30