別のスレッドプールまたは専用スレッドで System.Timer コールバックを作成するにはどうすればよいですか?
バックグラウンド
System.Timer を使用する重要なアプリケーション用の軽量モニターがありますが、コールバックを ThreadPool に含めず、高い優先度で動作させる方法がわかりません。
その理由は次のとおりです。
重要なアプリが応答しない場合、ThreadPool はキャンセル トークン、Thread.Abort、または Win32 Abort (ファイナライザーを実行しない) をハングしているスレッドに送信します。
アプリが CPU バウンドの場合、モニターへのサービス拒否を防ぐために、監視スレッドを最高の優先度で実行する必要があります。
スレッド数が多すぎるか、MaxThreadsの値が低すぎるために、スレッドプールが使い果たされている可能性があります
スレッドプールにあるスレッドに優先度を設定することはできません(AFAIK)
その結果、タイマーが必要であり、別のスレッドでコールバックする必要があると思いますが、これを実現する方法はわかりません。
別の AppDomain を作成することでこれが可能である場合、CLR では、別の AppDomain 内の他のスレッドにコマンドを発行できますか?