あるメソッドにおいて割込みを防止する方法


MK  2007-12-11 03:16:00  No: 28912

こんにちは、初めてですが、よろしくお願い致します。

○概要
メッセージ処理などによる割込みを任意のメソッドにおいて防止する方法を教えてください。

※詳細
現在あるTCP/IPの送受信プログラムにおいて、非同期の応答(メッセージ)が
返された場合、応答イベントを処理しているのですが、ある応答イベントの処理中に、他の応答によって応答イベントが割り込まれると見られる現象がおきています。(シングルスレッドだと思いますが...)


うんと  2007-12-11 03:40:14  No: 28913

>ある応答イベントの処理中に、他の応答によって応答イベントが割り込まれると見られる現象

「ある応答イベントの処理」の具体的なコードで割り込みを許してなければ、
シングルスレッドで割り込まれることはあり得ないです。


MK  2007-12-11 07:03:41  No: 28914

素早いご返答ありがとうございます。

度々お手数をかけて心苦しいのですが、

ある部分で割り込みを許すコードの具体例などが知りたいのですが、参考になるサイトなどありませんでしょうか?


KHE00221  2007-12-11 07:15:36  No: 28915

他の応答によって応答イベントが割り込まれたって事は

どっかからデータを送信してきてるって事で・・・その割り込みを防止してどうするの?

処理しなくてもいいデータなのかな?

TCP/IP の割り込みはスレッドで、同時にアクセスすれば同時に実行されますよ?


KHE00221  2007-12-11 22:09:16  No: 28916

Indyじゃないのかな?


うーん  2007-12-14 13:27:40  No: 28917

関係ないかもしれないけど。
どこかでApplicatoin.ProcessMessageをやってると
想定外の流れになることがありますよね。


deldel  2007-12-14 21:15:18  No: 28918

受信イベントでは、受信したデータをリストなどに追加するだけ。
別途タイマーで、このリストを監視し、データが入っていれば
上から順番に消しながら応答処理を行う。

こうすれば、応答処理中に受信データが次々に来ても
なんら問題なく全ての応答処理ができると思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加