我正在使用 ReactiveUI 的 ReactiveCommand 功能,它非常酷并且可以达到目的。我遇到的唯一问题是,实例化时的 ReactiveCommand 需要一个 IScheduler 实现,目前它只提供两个 MainThreadScheduler 和 TaskPoolScheduler 并且它们都允许为每个 ReactiveCommand 实例创建单独的线程,这是我无法承受的,因为我的应用程序有大量的 ReactiveCommand 实例.
所以我决定拥有自己的 IScheduler 实现,我可以将它传递给 ReactiveCommand 构造函数,我想做的是拥有某种可配置的 MaxThread;这将不允许超过 MaxThread 线程。
我现在可以想到两种方式
每当应用程序启动时,启动这些线程并将它们置于等待状态以尝试从 ActionBlock 中删除任务,当调用 Schedule 时,将该 Action 对象添加到 ActionBlock 实例。
Create and Destroy,与1基本相同,但是一旦任务完成,就结束线程而不是让它保持活动状态。
有人对我们应该如何做到这一点有任何建议吗?任何输入、代码示例、文章链接或 Github/Codeplex 上的任何内容都将不胜感激。