在WPF c#程序中,我需要通过充当ProfiNet主站的PLC并通过CANBUS桥接器与大量设备进行对话,来持续监视接收到的字节和发送到CANBUS的字节。我的问题是,一旦在Main()中执行App.Run()方法,程序流程将流向何方?我知道引发了Activated事件和Startup事件,因此执行了这些事件的处理程序,但是一旦执行了Startup事件处理程序,程序控制又转到哪里了?我要弄清楚将自己的代码放在哪里,这些代码将连续运行,直到App:Application关闭。我当然有多个显示的窗口和页面,并对这些窗口和页面的控件事件做出反应,但是放置在后台的程序正在等待那些控件事件运行?
答案 0 :(得分:0)
只有一个UI线程将必须用于与WPF可视元素进行交互的所有活动。通常,您将在该线程上具有MainWindow的构造函数。
您可以生成一个专用线程,该线程将与您的外部设备进行通信,并提供一个侦听器以监视与WPF框架不直接相关的外部通信。