非常にクールで目的にかなう ReactiveUI の ReactiveCommand 機能を使用しています。私が抱えている唯一の問題は、インスタンス化されたときの ReactiveCommand には IScheduler の実装が必要であり、現在は MainThreadScheduler と TaskPoolScheduler の 2 つしか提供されておらず、両方とも ReactiveCommand インスタンスごとに個別のスレッドを作成できますが、アプリケーションには膨大な量の ReactiveCommand インスタンスがあるため、余裕がありません。 .
そこで、ReactiveCommand コンストラクターに渡すことができる独自の IScheduler 実装を用意することにしました。MaxThread スレッドを超えることはできません。
私が考えることができる2つの方法があります
アプリケーションが起動するたびに、これらのスレッドを開始し、ActionBlock からタスクを削除しようとして待機状態にします。Schedule が呼び出されると、その Action オブジェクトを ActionBlock インスタンスに追加します。
Create と Destroy。基本的には 1 と同じですが、タスクが完了すると、スレッドを存続させずに終了します。
これをどのように達成すべきかについて誰か提案がありますか? 入力、コードサンプル、記事へのリンク、または Github/Codeplex の何かをいただければ幸いです。