• ベストアンサー

C# イベント処理について

doran975の回答

  • ベストアンサー
  • doran975
  • ベストアンサー率14% (1/7)
回答No.1

Windowsにおいて基本的なウィンドウメッセージについて調べてみたらいいんじゃない? Windowsのシステムと各ウィンドウはウィンドウメッセージでやりとりをしている。 .NET Frameworkにおいてほとんど意識する必要のないWin32APIについてもついでにしらべてみればいいかもね。

関連するQ&A

  • イベント処理の2つの方法

    マウスをクリックしたか、キーを入力したかなどのイベントを 補足するための方法として、無限ループなどで調べるやり方と、 イベントリスナー(?)というものを使う方法の2種類あったと思うのですが、 それぞれの手法の一般的な呼び方があったら教えてください。

  • Perlでイベント処理?

    ようやくPerlに慣れてきて、ふと思ったのですが VBではイベントというものがあり、Perl Tkでもキーボード・マウスのイベントの処理ができる みたいですが、クライアントでソケット受信した場合、いつ受信するかわかりませんので ループしていれば良いのですが、ループしている間は、他の実行が何も出来ず効率も悪いなと 思うようになりました。 WindowsのPerl5.6を使っているのですが、ソケット等、イベント処理できる方法はあるのでしょうか?

    • ベストアンサー
    • Perl
  • イベントハンドラ処理が終了しているかどうかを確認するには?

    イベントハンドラ処理が終了しているかどうかを確認するには? 前回以下のページにて「c#でボタンのアクションが終わった後に再度同じ動作をさせるには?」 という質問をしました所、イベントハンドラ処理が終了していないのでは?という回答を頂きました。 http://okwave.jp/qa/q5833308.html しかし、残念ながら当方初心者の為、 デバッガを利用して 「LoadData()処理」や「ボタンのClickイベントに対応付けしたイベントハンドラ処理」が  ・ちゃんと最後まで終了しているか  ・無限ループに陥っていないか  ・IO入力待ちで止まっていないか というのをどのように確認してよいかすらわかりません。 どうすれば確認できるのでしょうか? 何か参考になるページなどでも結構ですので教えてください。 よろしくお願いします。

  • イベント処理時のCPU負荷について

    現在、IPアドレスを監視するプログラムの作成を 検討していまがループで監視すると負荷が大変 大きくなります。 疑問に思ったのですが、例えばUNIXのシステムコール sleep() listen() accept()等はCPUに負荷がかかっていません。 常にあるポートのバッファを監視しているはずですよね。 これらのシステムコールはOSではどういった処理でCPU 負荷の軽減を実現しているのしょうか? 以上、ご教授お願いします。

  • MFCのイベント処理について

    MFCのイベント処理でOnLButtonDwonとOnRButtonDownの2つにそれぞれの描画処理を割り当てて、マウスをドラッグ(OnMouseMove)しているときにぞれぞれのボタンの処理を呼び出す時はどうすればいいでしょうか。

  • 無限ループ中におけるマウスイベント処理について

    import java.awt.*; import java.awt.event.*; //他のインポートは省略。 public class Test extends Frame {  public static void main(String[] args) {   new Test();  }  public Test() {   //フレームの基本設定は省略。   enableEvents(AWTEvent.MOUSE_EVENT_MASK);   show();   mainLoop();  }  private void mainLoop() {   while(true) {    //処理は省略。   }  }  public void processMouseEvent(MouseEvent e) {   //処理は省略。  }  //他のメソッドは省略。 } こんな感じのプログラムを作ったのですが、mainLoop メソッドの無限ループにはまって何もできなくなるはずが、 なぜか普通にマウスイベント処理ができたので不思議に思っております。 VB などで同じようなプログラムを作るときは無限ループの最後に DoEvents でイベント処理をさせております。 言語仕様なのか自分の使ってる PC や OS など環境のせいなのが気になっております。 Java 言語に詳しい方、もし何かご存知でしたら教えて下さい。 (なお、省略した部分は普通の計算処理とかなので影響はないと思われます。)

    • ベストアンサー
    • Java
  • イベントの取りこぼしについて

    教えて下さい。 VBで構築したアプリケーションにおいて、無限ループ内で処理を判断し、実行するようなプログラム構築にしています。この無限ループ内に「DoEvents」をセットしています。これによりOSに溜まっている、各イベントを処理していると思うのですが、処理するイベントに取りこぼしは発生しないのでしょうか? 現在、A/Dボードを実装しており、2ms周期でVBのイベントが発生するようなソフトになっています。「DoEvents」実行時に、OS側が処理に要する時間は、キューに溜まっているイベント数×1回のイベント処理時間で単純に導けるものでしょうか? また、CPUのスペックを2倍にすると、単純に処理時間は半分と計算できるものでしょうか?

  • 「イベント」とは?

    私は組込みシステムエンジニアをしています。 私が知る「イベント」という用語は、 「コンピュータの内部または外部にて何らかの変化が発生した際にプログラムに発信される信号」 を指し、その「イベント」に対する処理を「イベントハンドル処理」等と呼んでいます。 上を具体的な例で言うと 「(1)ボタンをクリックする」→「(2)ポップアップメッセージが出る」 だとすると、(1)が「イベント」で、(2)が「イベントハンドル処理」です。 ところが、最近ゲーム業界の方と一緒にお仕事をすることになり、その方は「イベント」は、私が「イベントハンドル処理」を指す用語だと言うのです。 業界によって「イベント」は別の意味だということなのでしょうか。

  • VBA API WM_KEYDOWN

    エクセル内のオブジェクトの移動を判定するため、マウスアップを検出しようと考えています。 GetAsyncKeyStateでできるのですが、エクセルが受け取るWM_KEYDOWNを受け取る方法はないのでしょうか? そもそもWindowsがイベント待ちで動いているのに、GetAsyncKeyStateだとループ処理で監視することになるので、すっきりしません。私だけでしょうか? ちなみに、新規に図形を作ったり、図形を移動したりしたときに処理したいですが、このイベントは準備されていないですよね?

  • CPU資源をなるべく消費しないでイベントを待機する

    こんにちは。 VC++2008Exressを使用して、以下のようなプログラムを作成したいと思います。 初心者で、どうやって作成すれば良いのか悩んでおります。 参考になるものなどありましたら、ご教授ください。 Windowsアプリケーション Win32API メッセージループ内でWaitForSingleObjectなどのイベントを待機する関数を使用して イベントを待つようにしたいのですが メッセージループ内でメッセージも待機できイベントも待機できるような方法はないでしょうか? 今のところ、実現はしておりませんが検討しているのは メッセージ待機用のスレッドを作成して、GetMessageで待機して メッセージがきたら、SetEvent関数でメインのメッセージループ内の WaitForSingleObjectを返す。 また、別のメッセージ以外のイベントを監視するスレッドを作成して WaitForSingleObjectで監視してイベントが来たら、さきと同じイベントを SetEvent関数を使用しメインのメッセージループ内のWaitForSingleObjectを返す。 という感じでメッセージとイベントをメッセージループ内で監視するようにするしか 分かりません。 その他、簡単な関数で実現可能なものなどありませんでしょうか? WaitForMultiObjectsとか、MsgWaitForMultiObjectsやら調べてみましたが、いまいち使い方が。。。。 また、スレッドは監視イベントが来るたびに終了させた方がよいのでしょうか? それでは、またスレッド作成を繰り返すので効率悪い気がします。 無限ループで監視させた方が良いのではと思いますが、CPU資源的には・・・。 というようなことで悩んでおります。 どうか、ご教授ください。よろしくお願いします。