• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++の割込みについて)

VC++の割込みについて

このQ&Aのポイント
  • Windows7のPentium P6000を使用して、MFCでプログラムをしています。
  • pthreadRX=AfxBeginThread(testRX,reinterpret_cast<LPVOID>(&myClass), THREAD_PRIORITY_TIME_CRITICAL, 0 ); ここで、threadAの優先度は"THREAD_PRIORITY_TIME_CRITICAL"で、threadB優先度は"THREAD_PRIORITY_NORMAL"とします。
  • threadAとthreadBが同時に動いている状態で、システム割込みは、両方のスレッドに入り、スレッドの実行速度を低下させますか?即ち、threadAに入る事を遠慮して欲しいものですが?

質問者が選んだベストアンサー

  • ベストアンサー
  • ques9900
  • ベストアンサー率34% (47/136)
回答No.1

試してはいませんが、 SetPriorityClassでREALTIME_PRIORITY_CLASSとしていれば、 システム割込みにすら勝ちそうですね。 https://msdn.microsoft.com/ja-jp/library/cc429350.aspx http://chokuto.ifdef.jp/advanced/function/SetPriorityClass.html ではご健闘を!

bakabon_xx
質問者

補足

貴重な情報有難うございます。 下記のコードは、『優先度変更モジュール 』のモジュールだそうですが、 この様なコードはC++コンパイラーで使用できます。 完成度が高そうなので、使用したいですが、もし不可能ならば 自分なりに、コードの作成をしなくては、ならないようです。 #module ;-------- 優先度変更モジュール -------------------- #uselib "kernel32.dll" #cfunc GetCurrentProcess "GetCurrentProcess" #cfunc GetCurrentThread "GetCurrentThread" #func SetPriorityClass "SetPriorityClass" int,int #func SetThreadPriority "SetThreadPriority" int,int ; プロセスの優先度クラス #const NORMAL_PRIORITY_CLASS 0x00000020 #const IDLE_PRIORITY_CLASS 0x00000040 #const HIGH_PRIORITY_CLASS 0x00000080 #const REALTIME_PRIORITY_CLASS 0x00000100 ;======== 優先度変更命令 ======== #deffunc SetPriority int p1, int p2 PriorityClass = NORMAL_PRIORITY_CLASS if p1 < 0 : priorityClass = IDLE_PRIORITY_CLASS if p1 > 0 : priorityClass = HIGH_PRIORITY_CLASS relativePriority = p2 ; プロセスの優先度クラスを変更 SetPriorityClass GetCurrentProcess(), priorityClass if stat == 0 : myerr |= 1 ; スレッドの相対優先度を変更 SetThreadPriority GetCurrentThread(), relativePriority if stat == 0 : myerr |= 2 return myerr #global ;-------------------------------------------------- ; アイドル優先度クラス, THREAD_PRIORITY_LOWEST を指定 SetPriority -1, -2 if stat : dialog "優先度変更失敗" : end repeat repeat 1000 await 0 title ""+cnt loop wait 10 loop