読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

キャプチャしながら再生するプログラムの作成(7)

出力・入力デバイスの管理クラスを作り直しているところ。DeviceWatcherを使ってでデバイスの情報取得・変更管理を行おうとしている。

やはりDeviceInformationからDeviceClassの値を得ることはできないようなので、DeviceInformation::CreateWatcherするときにDeviceClassを指定して出力・入力デバイスをそれぞれ別々に監視するようにコードを変更した。ちなみにDeviceInformation::CreateWatcherを引数なしで作ると私のPCで170個ほどのデバイスが列挙された。CPUも列挙対象だった。

管理クラスをやり直した後は、スレッド周りのコードをPPLを使って書き換えることを試みることにする。今のコードではランタイムエラーが頻発して不安定極まりない動作なので。おそらく今まではたまたま動いていただけで、環境が変わって不具合が顕在化したのだろうと思う。ロックフリーなコードを書くのにまだまだ必要な知識が足りていない。

ソースコード