ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

バックグランド動作

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-17 11:39
cabin  常連   投稿数: 48
V9Plusで制御系のプログラムを書いていて困っています。

複数(20台)の機器をMagicから制御しているのですが、
Magic自体が、1本のタスクでマルチスレッド処理はできないので、
複数のスレッドを立てて1つのスレッドで1台の機器を制御するようにプログラムしています。

同然1台のPC内で全ての処理が走ります。
機器が5台であれば、5つのスレッドを生成します。
メインコントロールタスクを含めれば6つ(タスク1+スレッド5)になります。
但し、メインコントロールは実行モード(R)で起動しています。

しかし、Magicの実行版は、起動オプションである

/ApplicationStartup=R

の場合は、必要な数のスレッド(実際にはタスク)を生成できますが、

/ApplicationStartup=B

の場合はライセンス数のスレッドしか立てられません。

1台のPC内で全て完結する場合もライセンス数が関係するのでしょうか?
ライセンス5の場合は、1つのタスクと4つのスレッドになります。
当然ですが、アプリケーションサーバーとして使用するわけではありません。

最大で20スレッドを生成するようにしています。
つまり、20台の機器を制御する場合は、21ライセンス必要なのでしょうか?

最悪、「/ApplicationStartup=R」で起動することになりますが、
CPU負荷率が100%となり実用上問題が残ってしまいます。

どなたか、このような経験をされた方が居られましたらアドバイスをお願いします。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-17 12:08
kaerenaiyo07  常連 居住地: mixi  投稿数: 42
バックグラウンドの場合の違いは知りませんが、
同一PCで起動できるのは、1ライセンスで5スレッド。
あとは2ライセンスで6、3ライセンスで7となるので、

1PCで20スレッド動かしたいなら16ライセンスだと思います。
MGstationsで使用状況を確認するといいかもです。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-20 14:41
cabin  常連   投稿数: 48
ありがとうございました

とりあえず自己解決しました。

実行モード(R)であれは複数のタスクが起動できるので、
起動後、ShowWindow APIを利用して、
タスクバーのアイコンを消去することで擬似的にバックグランド動作と同じ処理を実現できました。

これで、ライセンス数に関係なく同一PCで疑似スレッドが生成できるようになりました。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約