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


MK  2007-12-10 18:16:00  No: 28912  IP: 192.*.*.*

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

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

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

編集 削除
うんと  2007-12-10 18:40:14  No: 28913  IP: 192.*.*.*

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

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

編集 削除
MK  2007-12-10 22:03:41  No: 28914  IP: 192.*.*.*

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

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

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

編集 削除
KHE00221  2007-12-10 22:15:36  No: 28915  IP: 192.*.*.*

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

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

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

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

編集 削除
KHE00221  2007-12-11 13:09:16  No: 28916  IP: 192.*.*.*

Indyじゃないのかな?

編集 削除
うーん  2007-12-14 04:27:40  No: 28917  IP: 192.*.*.*

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

編集 削除
deldel  2007-12-14 12:15:18  No: 28918  IP: 192.*.*.*

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

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

編集 削除