タスク(プロセス)管理の方法

解決


Chiro  2003-05-22 20:16:06  No: 78005

VB6で開発しています。
exeは多分4,5本なんですが、画面渡りイメージで画面を表示します。
①その場合、タスク管理のexeを別にした方がいいのでしょうか?
②別にした場合、各タスクが管理タスクにメッセージを通知し、
  管理タスクが別タスクを起動したり、表示更新要求する必要があるのですが、
  sendmessageを使うのが、最適な方法なのでしょうか?

  頻繁にexe間でメッセージのやりとりをすると、
  システム的に負荷がかかりすぎるとか、
  ウィンドウのシステムに何か影響があるとか・・・ありますか?

  教えてください。
  宜しくお願いします。


Say  2003-05-22 23:27:43  No: 78006

機種依存文字(今回は丸付き数字)は使用しないのがネチケットです。
機種によっては文字化けします。

>タスク管理のexeを別にした方がいいのでしょうか?
設計思想の問題です。後にメンテしやすい、と思うほうを採用してください。

>sendmessageを使うのが、最適な方法なのでしょうか?
ときと場合によりますが、一度の送信データ量が少なく、
かつある程度送信速度が要求される場合、
SendMessageはよく用いられる手段のひとつです。

ただし、送信側はSendMessageするだけですが、
VBの場合、(FormをCreateWindowすれば別ですが)
メッセージループをプログラム内でいじれませんので
受信側は、LoopかTimerでPeekMessageするなり、
サブクラス化するなり、(市販の)サブクラスコントロールを
使うなり、受信の仕組みが必要になります。

プロセス間通信にはほかにもいろいろありますので、
ご自分のニーズにあわせて適宜選択されるのがよろしいかと・・・。

>頻繁にexe間でメッセージのやりとりをすると、
>システム的に負荷がかかりすぎるとか、
>ウィンドウのシステムに何か影響があるとか・・・ありますか?

メッセージの増大がシステム負荷の増大につながるのは
当然のことです。
どの程度負荷がかかるかは、実際にメッセージを
飛ばしてみればいいでしょう。

しかしながら、spy++あたりで確認していただければわかるように、
普段から膨大なメッセージが飛び交っています。

exe間の少々のメッセージのやり取り程度では、
見た目でわかるほど遅くなることはないでしょう。


魔界の仮面弁士  2003-05-23 00:31:29  No: 78007

> プロセス間通信にはほかにもいろいろありますので、
VBの標準機能で実装する場合、DDE や COM で通信するという手もよく使われます。

> ただし、送信側はSendMessageするだけですが、
> VBの場合、(FormをCreateWindowすれば別ですが)
> メッセージループをプログラム内でいじれませんので
WM_SETTEXT を TextBox_Change で受ける……という手もあるようです。


Chiro  2003-05-23 01:37:18  No: 78008

お答えありがとうございます。

管理タスクを別にしたとして、タスク間のメッセージは
起動・終了・表示更新ぐらいです。
負荷は心配いらないようなので
シンプルで、よく使われていて問題が発生しにくい方法はどれでしょうか?


Say  2003-05-23 03:18:56  No: 78009

>シンプルで、よく使われていて問題が発生しにくい方法はどれでしょうか?
通産なら、DDEが一番使われているのでは?
VB2時代からある古い技術ですし・・・。

>WM_SETTEXT を TextBox_Change で受ける……という手もあるようです。
なんか、DDEっぽくていいかも。


Chiro  2003-05-23 19:47:19  No: 78010

ありがとうございました。


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

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






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