HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0622
(´ω`)sendmsgで不思議な現象が……2解決


(´ω`)

リンク

2011/6/22(Wed) 18:48:06|NO.39807

自作アプリ間でsendmsgによるやりとりを行っているのですが、
それがちょっと不思議な動作をしているのです。(´・ω・`)

2つのアプリ(仮にアプリA、Bとします)があります。
アプリAがメインで、ユーザインターフェースなどを担っています。
アプリBはバックグラウンドで行いたい処理の塊になっていて、アプリAからのメッセージを
トリガーにしていろんな処理を裏方で行います。
双方のアプリ間のやりとりにはsendmsgを使っています。

そういう仕組みのアプリは何度か作っており、今まではうまくいけてました。
ところがなぜか、アプリAが一時的に固まってしまう、という現象がおきたのです。

最初はなんで固まるのかわからなかったのですが、原因を調べる過程でためしに、アプリAの
sendmsg命令の直後に確認ダイアログを出すようにしてみたんです。そうすると、sendmsg直後から
アプリBの処理終了まで無反応、そして処理終了直後にダイアログが出ました。

 「え、なんでアプリBの処理を待ってんの?Σ(´Д`u)」

アプリBはバックグラウンド処理だけをするので、アプリAに対して一切の返事を返しませんし、
アプリAもそれを前提で組んでいます。

実はsendmsg命令って、必ず相手側からの何らかの返事を待機する構造になってるんでしょうか?
似た現象を経験された方がいらっしゃいましたら、「こういうミスしてんじゃねーのバーカ」などの
ご意見をいただければ幸いに思います。(;ω;)



この記事に返信する


test

リンク

2011/6/22(Wed) 18:52:17|NO.39808

sendmsgは、処理が終わるまで(相手がoncmd gosubの場合はreturnするまで)待つようになっています。
これは、WinAPIのSendMessage関数の仕様です。

相手を待ちたくない場合は、WinAPIのPostMessage関数を使いましょう。



(´ω`)

リンク

2011/6/22(Wed) 18:56:54|NO.39809

激烈に早い上にこちらの勘違いを的確に指摘していただき、感涙しております。

本当にありがとうございます!超解決です!
アンドもっと勉強します!PostMessage勉強してきます!(;ω;)



ONION software Copyright 1997-2023(c) All rights reserved.