我感兴趣的是获取有关.Net 3.5/4Winforms(也许是WPF3.5/4Winforms)中的软(硬)实时应用的全面信息。谷歌对这件事的搜索结果相当糟糕--一些关于并行性的问题……问题是,例如,我如何为一些医疗设备编写一个实时的患者健康监控客户端?或具有实时股票数据的经纪应用程序?或者火车的导航系统?或者是一个负责开/关门的房屋自动化软件?等等。因此,这种实时应用程序就是目标。
到目前为止,我还没有找到任何关于它的书籍,除了Windows上的并发编程-基本上不是关于这个,而是关于并行处理……
提前感谢
发布于 2009-06-23 09:34:29
我个人的感觉是,如果你的需求是实时软件,你就不应该使用.net
.net使用的虚拟机并不适合实时应用程序。例如,您无法预测垃圾收集器何时运行,或者需要多长时间。如果这发生在关键时刻,你的实时软件将不再是实时的。
编辑:对不起,我知道这并没有真正回答你的问题,但我认为这可能是你在上面找不到信息的原因-因为没有人这样做。如果您正在编写实时软件,那么您可能应该改为使用C或C++。根据它的关键程度,一个专用的确定性实时操作系统。甚至是考虑到实时设计的特定语言
发布于 2009-06-23 10:10:24
在我的公司,我们用C#和C++/CLI语言开发了一个远程语音应答服务器。它每年处理数百万次调用,全天候运行,从不崩溃,通常就像我们所希望的那样健壮。它没有什么特别之处,它只是常规的windows服务,虽然速度、效率和响应时间显然是我们的目标,但它不会做任何深奥的事情,比如试图控制GB等。
然而,有一个很大的但是。由我们的应用程序控制的硬件的驱动程序显然不是.Net。因此,在最低级别,我们不关心不需要的GBC等,所有毫秒相关的东西,如IP电话数据包的转发或语音流,都是由我们的电话板上的固件处理的。
综上所述:我甚至不会考虑用.Net编写驱动程序或非常非常低的延迟代码,但我肯定会用.Net编写控制代码/逻辑。
不幸的是,我不能给你任何有用的资源,因为我也从来没有遇到过任何有用的资源,但我希望这个用例能帮助你做出明智的决定,决定你是否应该考虑将.Net用于你的实时项目。
发布于 2009-06-23 10:10:06
我不同意@Simon的说法,你可以用Windows和.NET构建实时系统,你可能不能构建非常具体的困难时间系统,但通过适当的设计和测试,你可以,我也可以。
有许多技术可以将硬时间需求推到software solutions或motion/IO controllers等硬件上。Windows/.NET使系统的大部分开发比RTOS开发更容易,并且可以解决少数几个时间关键型元素。我的方法是首先解决这些关键的时间问题,然后进行测试。
https://stackoverflow.com/questions/1031512
复制相似问题