我正在寻找关于这个问题的更少技术性和更多概念性的答案。
我正在寻找使用 .NET 4.5 构建一个 WPF 应用程序来控制流动站,(美化 RC Car)。这是预期的功能:
- 应用程序和流动站将通过发送和接收字符串进行无线通信 - JSON over TCP Socket。
- GUI 将通过 RTSP 显示多个视频源。
- 控制面板 - 定制硬件 - 将通过 USB 连接到计算机,这些信号将在通过 TCP 连接发送并提供移动指令之前转换为 JSON。
- GUI 需要更新以反映控制面板的状态以及基于接收到的数据的流动站状态。
我不确定使用哪些技术来实现这一点,但根据我的研究,BackgroundWorkers 或 Threads 和异步技术将是值得研究的事情。哪一条看起来像是一条好路?另外,我应该直接在应用程序中使用 TCP 套接字还是应该/可以使用 WCF 来提供这些数据?
在这方面的任何智慧都会很棒。提前致谢。
编辑:
这是使用的最终实现,男孩做得很好:
- 一切都围绕使用MVVM模式进行。
- 控制面板和网络组件都有视图,每个视图都有一个对应的视图模型来处理后台操作。
- 更新 UI是通过databinding完成的,而不是 Dispatcher。
- 无线通信是通过TCPListener以及Tasks异步完成的(async/await)。
- 串行端口通信是通过SerialPort和Tasks异步完成的。
- 使用ModernUI作为界面。
- 使用JSON.NET进行 JSON 解析。
这是该项目的链接。它是在一个月的时间内完成的,所以它不是最漂亮的代码。今年夏天我已经改进了很多实践,所以我很高兴能在明年完成的重构版本上工作。