出力・入力デバイスの管理クラスを作り直しているところ。DeviceWatcherを使ってでデバイスの情報取得・変更管理を行おうとしている。
やはりDeviceInformationからDeviceClassの値を得ることはできないようなので、DeviceInformation::CreateWatcherするときにDeviceClassを指定して出力・入力デバイスをそれぞれ別々に監視するようにコードを変更した。ちなみにDeviceInformation::CreateWatcherを引数なしで作ると私のPCで170個ほどのデバイスが列挙された。CPUも列挙対象だった。
管理クラスをやり直した後は、スレッド周りのコードをPPLを使って書き換えることを試みることにする。今のコードではランタイムエラーが頻発して不安定極まりない動作なので。おそらく今まではたまたま動いていただけで、環境が変わって不具合が顕在化したのだろうと思う。ロックフリーなコードを書くのにまだまだ必要な知識が足りていない。