推荐.Net软实时

时间:2009-06-23 09:26:12

标签: .net winforms multithreading .net-3.5 real-time

我有兴趣在.Net 3.5 / 4 Winforms中获得有关软(硬盘)实时应用程序的全面信息(也许是WPF)。谷歌的结果非常糟糕 - 有些人只关注并行性......问题是我怎样才能为一些医疗设备编写一个实时的患者健康监测客户端?或具有实时股票数据的经纪人申请?还是火车导航系统?或者是一个负责打开/关闭门的房屋自动化软件?等...所以这种实时应用程序是目标。

到目前为止,除了Windows上的并发编程之外,我还没有找到任何书籍 - 这基本上与此无关,而是并行处理...

提前致谢

4 个答案:

答案 0 :(得分:5)

我个人的感觉是,如果您的要求是实时软件,则不应使用.net

.net使用的虚拟机不适合实时应用程序。例如,您无法预测垃圾收集器何时运行,或者需要多长时间。如果这发生在关键时刻,那么您的实时软件将不再是实时的。

[编辑:对不起,我知道这并没有真正回答你的问题,但我认为这可能是你无法找到相关信息的原因 - 因为没有人这样做。如果您正在编写实时软件,那么您应该考虑使用C或C ++。并且取决于它的重要性,一个专用的确定性实时操作系统。甚至是以实时设计的特定语言]

答案 1 :(得分:2)

在我的公司,我们使用C#和C ++ / CLI开发了一个telphony IVR服务器。它每年处理数百万次呼叫,全天候运行,从不崩溃,并且通常像我们希望的那样强大。没有什么花哨的,它只是常规的Windows服务,虽然速度,效率和响应时间显然是我们的目标,但它并没有像尝试控制GB等那样做任何深奥的事情。

然而,有一个很大但是。我们的应用程序控制的硬件驱动程序显然不是.Net。因此,在最低级别,我们不关心不需要的GBC等,所有毫秒相关的东西,如IP电话数据包或语音流的转发都由我们的电话板上的固件处理。

总而言之:我甚至不会考虑在.Net中编写驱动程序或非常低延迟的代码,但我肯定会在.Net中编写控制代码/逻辑。

不幸的是,我无法向您指出任何有用的资源,因为我从未遇到过任何有用的资源,但我希望这个用例能帮助您做出明智的决定,决定是否应该考虑.Net来实现您的实时项目。 / p>

答案 2 :(得分:1)

我不同意@Simon,你可以使用Windows和.NET构建实时系统。您可能无法构建非常具体的硬时间系统,但通过适当的设计和测试,您可以和我一样。

有许多技术可以将艰难时间要求推送到software solutions或硬件,例如motion/IO controllers。 Windows / .NET使得系统的大部分内容比RTOS开发更容易开发,并且可以解决很少的时间关键元素。我的方法是首先解决这些时间关键问题并进行测试。

答案 3 :(得分:1)

Parralelism和线程是.NET提供的一些工具,可以帮助您编写实时应用程序,但实时系统的体系结构与语言无关。

This MSDN文章为并行计算提供了一些很好的链接。

也许Smart Client Software Factory可能是您开始调查的好参考。