Process.WaitForInputIdle メソッド

定義

関連付けられたプロセスがアイドル状態になるまで、Process コンポーネントを待機させます。Causes the Process component to wait for the associated process to enter an idle state.

オーバーロード

WaitForInputIdle()

関連付けられたプロセスがアイドル状態になるまで、Process コンポーネントを無期限に待機させます。Causes the Process component to wait indefinitely for the associated process to enter an idle state. このオーバーロードは、ユーザー インターフェイスとメッセージ ループを持つプロセスにだけ適用されます。This overload applies only to processes with a user interface and, therefore, a message loop.

WaitForInputIdle(Int32)

関連付けられたプロセスがアイドル状態になるまで、最大で指定したミリ秒間、Process コンポーネントを待機させます。Causes the Process component to wait the specified number of milliseconds for the associated process to enter an idle state. このオーバーロードは、ユーザー インターフェイスとメッセージ ループを持つプロセスにだけ適用されます。This overload applies only to processes with a user interface and, therefore, a message loop.

WaitForInputIdle()

関連付けられたプロセスがアイドル状態になるまで、Process コンポーネントを無期限に待機させます。Causes the Process component to wait indefinitely for the associated process to enter an idle state. このオーバーロードは、ユーザー インターフェイスとメッセージ ループを持つプロセスにだけ適用されます。This overload applies only to processes with a user interface and, therefore, a message loop.

public:
 bool WaitForInputIdle();
public bool WaitForInputIdle ();
member this.WaitForInputIdle : unit -> bool
Public Function WaitForInputIdle () As Boolean

戻り値

関連付けられたプロセスがアイドル状態になった場合は truetrue if the associated process has reached an idle state.

例外

プロセスにグラフィカル インターフェイスがありません。The process does not have a graphical interface.

- または --or- 不明なエラーが発生しました。An unknown error occurred. プロセスがアイドル状態になることができませんでした。The process failed to enter an idle state.

- または --or- プロセスは既に終了しています。The process has already exited.

- または --or- この Process オブジェクトに関連付けられているプロセスはありません。No process is associated with this Process object.

注釈

WaitForInputIdle() を使用すると、メッセージループがアイドル状態に戻ってくるまでアプリケーションの処理を強制的に実行できます。Use WaitForInputIdle() to force the processing of your application to wait until the message loop has returned to the idle state. ユーザーインターフェイスを持つプロセスが実行されている場合、オペレーティングシステムによって Windows メッセージがプロセスに送信されるたびに、そのメッセージループが実行されます。When a process with a user interface is executing, its message loop executes every time a Windows message is sent to the process by the operating system. 次に、プロセスはメッセージループに戻ります。The process then returns to the message loop. プロセスは、メッセージループ内のメッセージを待機しているときにアイドル状態になっていると言います。A process is said to be in an idle state when it is waiting for messages inside of a message loop. この状態は、アプリケーションがそのウィンドウと通信する前に、アプリケーションがメインウィンドウの作成を完了するまで待機する必要がある場合などに便利です。This state is useful, for example, when your application needs to wait for a starting process to finish creating its main window before the application communicates with that window.

プロセスにメッセージループがない場合、WaitForInputIdle()InvalidOperationExceptionをスローします。If a process does not have a message loop, WaitForInputIdle() throws an InvalidOperationException.

WaitForInputIdle() のオーバーロードは、メッセージループ内のプロセスがアイドル状態になるまで無制限に待機するように Process コンポーネントに指示します。The WaitForInputIdle() overload instructs the Process component to wait indefinitely for the process to become idle in the message loop. この命令により、アプリケーションが応答を停止する可能性があります。This instruction can cause an application to stop responding. たとえば、プロセスが記述されている場合は、コード片 while(true)のように、常にメッセージループを直ちに終了します。For example, if the process is written to always exit its message loop immediately, as in the code fragment while(true).

セキュリティ

LinkDemand
直前の呼び出し元に対する完全な信頼の場合。for full trust for the immediate caller. このメンバーは、部分的に信頼されているコードから使用することはできません。This member cannot be used by partially trusted code.

こちらもご覧ください

WaitForInputIdle(Int32)

関連付けられたプロセスがアイドル状態になるまで、最大で指定したミリ秒間、Process コンポーネントを待機させます。Causes the Process component to wait the specified number of milliseconds for the associated process to enter an idle state. このオーバーロードは、ユーザー インターフェイスとメッセージ ループを持つプロセスにだけ適用されます。This overload applies only to processes with a user interface and, therefore, a message loop.

public:
 bool WaitForInputIdle(int milliseconds);
public bool WaitForInputIdle (int milliseconds);
member this.WaitForInputIdle : int -> bool
Public Function WaitForInputIdle (milliseconds As Integer) As Boolean

パラメーター

milliseconds
Int32

関連付けられたプロセスがアイドル状態になるまでの待機時間をミリ秒単位で指定する、1 ~ MaxValue の値。A value of 1 to MaxValue that specifies the amount of time, in milliseconds, to wait for the associated process to become idle. 値 0 の場合はすぐに制御が戻され、値 -1 の場合は無期限に待機することを示します。A value of 0 specifies an immediate return, and a value of -1 specifies an infinite wait.

戻り値

関連付けられたプロセスがアイドル状態になった場合は true。それ以外の場合は falsetrue if the associated process has reached an idle state; otherwise, false.

例外

プロセスにグラフィカル インターフェイスがありません。The process does not have a graphical interface.

- または --or- 不明なエラーが発生しました。An unknown error occurred. プロセスがアイドル状態になることができませんでした。The process failed to enter an idle state.

- または --or- プロセスは既に終了しています。The process has already exited.

- または --or- この Process オブジェクトに関連付けられているプロセスはありません。No process is associated with this Process object.

注釈

WaitForInputIdle(Int32) を使用すると、メッセージループがアイドル状態に戻ってくるまでアプリケーションの処理を強制的に実行できます。Use WaitForInputIdle(Int32) to force the processing of your application to wait until the message loop has returned to the idle state. ユーザーインターフェイスを持つプロセスが実行されている場合、オペレーティングシステムによって Windows メッセージがプロセスに送信されるたびに、そのメッセージループが実行されます。When a process with a user interface is executing, its message loop executes every time a Windows message is sent to the process by the operating system. 次に、プロセスはメッセージループに戻ります。The process then returns to the message loop. プロセスは、メッセージループ内のメッセージを待機しているときにアイドル状態になっていると言います。A process is said to be in an idle state when it is waiting for messages inside of a message loop. この状態は、アプリケーションがそのウィンドウと通信する前に、アプリケーションがメインウィンドウの作成を完了するまで待機する必要がある場合などに便利です。This state is useful, for example, when your application needs to wait for a starting process to finish creating its main window before the application communicates with that window.

プロセスにメッセージループがない場合、WaitForInputIdle(Int32)InvalidOperationExceptionをスローします。If a process does not have a message loop, WaitForInputIdle(Int32) throws an InvalidOperationException.

WaitForInputIdle(Int32) のオーバーロードは、メッセージループでプロセスがアイドル状態になるまでの時間を待機するように Process コンポーネントに指示します。The WaitForInputIdle(Int32) overload instructs the Process component to wait a finite amount of time for the process to become idle in the message loop. ループがまだメッセージを処理しているために、関連付けられたプロセスが間隔の最後までアイドル状態にならない場合は、呼び出し元のプロシージャに false が返されます。If the associated process has not become idle by the end of the interval because the loop is still processing messages, false is returned to the calling procedure.

イベントの処理の詳細については、「処理とイベントの発生」を参照してください。For more information about handling events, see Handling and Raising Events.

セキュリティ

LinkDemand
直前の呼び出し元に対する完全な信頼の場合。for full trust for the immediate caller. このメンバーは、部分的に信頼されているコードから使用することはできません。This member cannot be used by partially trusted code.

こちらもご覧ください

適用対象