我有兴趣在.Net 3.5/4 Winforms(也许是WPF)中获取有关软(硬)实时应用程序的全面信息。谷歌的结果很差 - 一些仅关于并行性的问题......问题是我如何为某些医疗器械编写实时患者健康监控客户端?或具有实时股票数据的经纪人应用程序?还是火车的导航系统?还是负责打开/关闭门的房屋自动化软件?等等......所以这种实时应用程序是目标。
到目前为止,我还没有找到任何关于它的书,除了 Windows 上的并发编程 - 这基本上不是关于这个,而是并行处理......
提前致谢
我有兴趣在.Net 3.5/4 Winforms(也许是WPF)中获取有关软(硬)实时应用程序的全面信息。谷歌的结果很差 - 一些仅关于并行性的问题......问题是我如何为某些医疗器械编写实时患者健康监控客户端?或具有实时股票数据的经纪人应用程序?还是火车的导航系统?还是负责打开/关闭门的房屋自动化软件?等等......所以这种实时应用程序是目标。
到目前为止,我还没有找到任何关于它的书,除了 Windows 上的并发编程 - 这基本上不是关于这个,而是并行处理......
提前致谢
我个人的感觉是,如果您的要求是实时软件,您不应该使用 .net
.net 使用不适合实时应用程序的虚拟机。例如,您无法预测垃圾收集器何时运行,或者需要多长时间。如果这发生在关键时刻,您的实时软件将不再是实时的。
[编辑:对不起,我知道这并没有真正回答你的问题,但我认为这可能是你在查找相关信息时遇到困难的原因——因为没有人这样做。如果您正在编写实时软件,您可能应该改用 C 或 C++。取决于它的重要性,一个专用的确定性实时操作系统。甚至是为实时设计的特定语言]
在我的公司,我们用 C# 和 C++/CLI 开发了一个电话 IVR 服务器。它每年处理数百万个呼叫,24/7 全天候运行,从不崩溃,并且通常像我们希望的那样强大。它没有什么花哨的,它只是常规的 Windows 服务,虽然速度、效率和响应时间显然是我们的目标,但它并没有做任何深奥的事情,比如试图控制 GB 等。
但是有一个很大的但是。由我们的应用程序控制的硬件驱动程序显然不是.Net。因此,在最低级别,我们不会担心不需要的 GBC 等等,所有与毫秒相关的东西,例如 IP 电话数据包的转发或语音流,都由我们电话板上的固件处理。
所以总结一下:我什至不会考虑在 .Net 中编写驱动程序或非常低延迟的代码,但我肯定会在 .Net 中编写控制代码/逻辑。
不幸的是,我无法为您指出任何有用的资源,因为我也从未遇到过任何有用的资源,但我希望这个用例将帮助您就是否应该为您的实时项目考虑 .Net 做出明智的决定。