- PR -

タスクのプライオリティの設定について

1
投稿者投稿内容
おじか
ベテラン
会議室デビュー日: 2002/12/04
投稿数: 57
お住まい・勤務地: 埼玉県
投稿日時: 2003-02-24 17:04
こんにちわ。
VB.NETで測定器の制御ソフトを作成しています。
PCにPCIボードを実装しそこに制御対象になる測定器をつなぎます。
VBからPCIのデバイスドライバにアクセスした時にWindowsが他のアプリを監視するなどして測定器の制御から離れるときがあります。時間にして10〜20mSの時間です。またこの現象は不規則に出ます。
100uSの精度がほしいので10〜20mSの時間は長すぎます。
GCが動作していてVBでは制御出来ないという話も聞きました。
VBにPriority プロパティというのがあってこれを設定してタスクのプライオリティをあげる事で回避出来る可能性があるみたいです。
ただ、このPriority プロパティの設定方法がわかりません。VB.NETのヘルプにありますがよくわかりません。図々しいと思いますがどなたが設定方法を教えていただけませんか。
OSはWinXP Proです。CPUはセレロン1.3G、メモリは256MBです。
現在は、WinXPの表示スタイルをクラシックスタイルにしてカーソルの点滅速度を一番遅くしています。
こうすると多少現象が軽減されます。

よろしくいお願いします。

System.Diagnostics.ThreadPriorityLevel.AboveNormalの設定をどこかにすればよいというとこまでわかりましたがその先がわかりません。


[ メッセージ編集済み 編集者: おじか 編集日時 2003-02-24 19:16 ]
おじか
ベテラン
会議室デビュー日: 2002/12/04
投稿数: 57
お住まい・勤務地: 埼玉県
投稿日時: 2003-02-25 11:56
自己レスです。
アプリケーション実行時に以下の宣言をするとプライオリティが設定できました。
Process.GetCurrentProcess.PriorityClass = System.Diagnostics.ProcessPriorityClass.AboveNormal
7段階の設定できますが、現在は上から2つ目に設定してます。
現象は軽減されましたが、まだ出てしまいます。
ただ、一番高い設定にすると制御部分は動作してますが、操作部分が動かせません。
なので、もうちょっといろいろと試してみたいと思います。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-02-25 16:17
こんにちは。

WindowsXPならば、「システムのプロパティ」の、「詳細」タブ「パフォーマンス」グループ「詳細」ボタン→「パフォーマンスオプション」なんかもいじってみました?
1

スキルアップ/キャリアアップ(JOB@IT)