为服务器体系结构设计了一个模块化的委托调度器

本文关键字:模块化 一个 调度 服务器 结构设计 | 更新日期: 2023-09-27 18:00:03

关于基于事件的循环的自变量,已经说了很多,实现了ThreadTask<T>之间的并行性和差异性。我想报

任务和线程之间的区别是什么?

这清楚地解释了Task<T>是一个承诺,线程可能是实现它的手段之一。

另一个问题是介绍的第一点

有可能在。NET,使用C#,在没有多线程的情况下实现基于事件的异步模式?

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

我想实现这样的目标:

var sched = new Scheduler(new DefaultSchedulingStrategy());
var listnr = new TcpListener();
sched.DefineEventSource<Socket>(listnr.AcceptSocketAsync);
shed.OnEvent(
  (socket) = {
    // handling socket here
  });

我知道这似乎非常接近Task.Factory.FromAsync<T>。无论如何,我想在这里实现的是能够更改不同工作负载的调度策略,并尽可能多地抽象激活事件的逻辑。

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

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

为服务器体系结构设计了一个模块化的委托调度器

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