IntervalZero's RTX productのネイティブコールをラップするためのマネージコードを作成しています。 RTXは基本的にカーネルプロキシを設定することで、Windows上でリアルタイムコーディングを可能にします。ここで重要なのは、DllMainがDLL_THREAD_ATTACHで呼び出されたときにRTXがプロキシを生成することです(DLL_THREAD_DETACHでそれを破棄します)。そのプロキシが生成されておらず、あなたがライブラリーに電話をかけた場合は、即時BSODのが得られます。ThreadPoolを使用してmstest *を実行しないでください
mstest.exeが単体テストを実行すると、99.9%の確率で、ThreadPoolクラスを使用してキューに入れます(これはこの動作を説明する唯一のものです)。残念ながら、RTXライブラリがロードされる前にスレッドが既に作成されているため、DllMainは呼び出されず、RTXサブシステムはその存在を認識しないため、単体テストがライブラリに呼び出されようとすると、 。
私は本当にこのようなものに対して単体テストを実行できる必要があるので、合理的で自動化可能なテストカバレッジを得ることができます。各テストの実行時に新しいスレッドを生成するようにmstestに指示する方法はありますか?私は通常、それを行うのが遅くなることを知っていますが、それはまだ青い画面の後に戻ってくるよりも速くなるだろう。
まだありません。私は既に他のすべての仕事のために使用しているツールセット内にとどまることを望んでいます。 – ctacke