2011-10-24 12 views
7

通常、ユーザーが入力を行うと、Windowsはアプリケーションの進行を実行します。
例:ボタンをクリックします。
それまでアプリケーションはビジー状態ですか?
(「ボタンがクリックされたかどうかを確認してください。」というメッセージが表示されます)
イベントが発生すると、OSはアプリケーションを中断しますか?
Windowsフォームアプリケーションの正確なイベント処理メカニズムは何ですか?Windowsフォームアプリケーションはユーザーの入力を待ちますか?

+0

良いリンク(Googleが提供していない)は素晴らしいでしょう:) – Dinushan

+2

正しく書かれたアプリケーションがビジー待機を使用していないと仮定できます。 – ThiefMaster

答えて

2

私はそれについて分かりません。しかし、確かに私のピーナッツを共有します。

プログラムはいずれも待機しません。スリープモードのような。リソースを消費しますが、画面上にGUIを保持するだけです。

イベント処理は、プログラムベースまたはOSベースではありません。そのハードウェアベース。マウスをクリックするかキーボードのキーを押すと、とみなされ、非同期外部アクティビティとみなされます。ハードウェアは、ユーザまたは外部デバイスによって行われたアクションについてOSに照応し、情報は対応するプログラムに渡されます。プログラムは、鍵を受け入れることも拒否することもできます。それが受け入れられると、キーはイベントハンドラに渡され、必要なアクションが生成されます。 OSはまったくそのプロセスに関与していません。そのネイティブコードをプログラムで読めるコードに変換するメディエーターに多かれ少なかれ類似しています。それがプログラムがOS特有の理由の1つです。私は、OSがネイティブコードを、プログラムが読むことができない形式で変換するなら、どういう意味ですか?

あなたはWindowsベースのアプリケーションでイベントについて話していますが、USBのケースを想像することができます。今日のマザーボードには8個以上のUSBスロットがあります。ユーザーは任意のスロットにUSBを差し込むことができます。 OSはUSBが挿入されるのを待っていて、すべてのスロットに追跡と待機を続けていますか? NO。どういたしまして。そのハードウェアベースのプロセスとそれについてのOSに親密なハードウェアの義務。 Windows互換およびLinux互換のコミュニティがここに入り、どのハードウェアがどのOSでサポートされているかを議論します。

See this to know more

3

いいえ、彼らは待っていません。Windows Message Pumpを実行すると、Windows Message Pumpが実行され、Windowsにメッセージが送信されるまでブロックされます。

これは基本的にはApplication.Runです。

関連する問題