C# 为服务器体系结构设计模块化委托调度器

C# 为服务器体系结构设计模块化委托调度器,c#,.net,events,parallel-processing,scheduler,C#,.net,Events,Parallel Processing,Scheduler,关于基于事件的循环的争论已经讨论了很多,实现了线程和任务之间的并行性和差异性。 我想引用 这清楚地解释了一个任务是一个承诺,线程可以是实现它的手段之一 而另一个问题则涉及导言的第一点 问题来了。我正在考虑如何设计一个可重用的.NET基础结构类型,它可以在特定事件发生时调用委托。当然,我已经评估了第二个问题提供的所有参考资料,但我觉得我仍然需要进行更多的调查 我想实现以下目标: var sched = new Scheduler(new DefaultSchedulingStrategy())

关于基于事件的循环的争论已经讨论了很多,实现了
线程
任务
之间的并行性和差异性。 我想引用

这清楚地解释了一个
任务
是一个承诺,线程可以是实现它的手段之一

而另一个问题则涉及导言的第一点

问题来了。我正在考虑如何设计一个可重用的.NET基础结构类型,它可以在特定事件发生时调用委托。当然,我已经评估了第二个问题提供的所有参考资料,但我觉得我仍然需要进行更多的调查

我想实现以下目标:

var sched = new Scheduler(new DefaultSchedulingStrategy());
var listnr = new TcpListener();
sched.DefineEventSource<Socket>(listnr.AcceptSocketAsync);
shed.OnEvent(
  (socket) = {
    // handling socket here
  });
var sched=new Scheduler(new DefaultSchedulingStrategy());
var listnr=新的TcpListener();
sched.DefineEventSource(列表编号AcceptSocketAsync);
单间(
(插座)={
//这里是操作插座
});
我知道这似乎非常接近于
Task.Factory.fromsync
。无论如何,我想在这里实现的是能够在不同的工作负载上更改调度策略,并尝试尽可能多地抽象激活事件的逻辑

我还考虑过用F#编写一个基本的调度器(例如,基于代理),创建一个C#友好的可重用库,然后用C#编写服务器的其余部分(因为目前它是我的主要开发语言)


我希望我说得够清楚(对不起,英语不是我的主要语言)。

在我了解了世界的奇妙之后,我总是向所有想做一些复杂事件处理的人推荐它们。这项技术也有很好的介绍。我想它会很好地满足您的需求。

在我了解了的奇妙世界之后,我总是向所有想对复杂事件处理做点什么的人推荐它们。这项技术也有很好的介绍。我想它会对你的需求很有用。

{+1}@Haspemulator为什么这个回答回答了我的问题?LinqRX是我想用于这种事情的技术。为了得到这样的确认,我已经明确地没有提到它(如果它在第二个引用的问题中出现的话)。作为参考,我想补充的是,它们与我的样本非常接近。该库还公开了具有不同线程模型的各种调度程序(请阅读@Haspemulator推荐的在线书籍)。据说,这是另一个有趣的项目(名称不言自明)。例如,它包含观察
HttpListener
TcpListener
Sockets`和
Streams``的扩展方法(请查看project wiki上codeplex上的网络I/O)。每个开发者都应该关注这一点。我同意,Rxx很重要,但遗憾的是,它不是官方Rx的一部分。希望随着迁移到开源模型,Rx的开发速度会提高,Rxx会很快成为其中的一部分。{+1}@Haspemulator为什么这个回答会回答我的问题?LinqRX是我想用于这种事情的技术。为了得到这样的确认,我已经明确地没有提到它(如果它在第二个引用的问题中出现的话)。作为参考,我想补充的是,它们与我的样本非常接近。该库还公开了具有不同线程模型的各种调度程序(请阅读@Haspemulator推荐的在线书籍)。据说,这是另一个有趣的项目(名称不言自明)。例如,它包含观察
HttpListener
TcpListener
Sockets`和
Streams``的扩展方法(请查看project wiki上codeplex上的网络I/O)。每个开发者都应该关注这一点。我同意,Rxx很重要,但遗憾的是,它不是官方Rx的一部分。希望随着迁移到开源模型,Rx的开发速度将会提高,Rxx将很快成为其中的一部分。