在WPF中,在单独的线程上运行永无休止的循环的正确方法是什么?

本文关键字:循环 是什么 方法 永无休止 WPF 单独 线程 运行 | 更新日期: 2023-09-27 18:12:12

我正在创建一个应用程序,该应用程序将通过TCP连续侦听传入信号,直到它通过按钮停止或应用程序关闭。由于应用程序所运行的PC需要运行大量的CPU,我认为我应该在一个单独的线程中运行它,这样它就不会占用CPU。

我的想法是使用包含DoWork()内循环的BackgroundWorker,检查IsCancellationPending标志(当用户单击停止按钮或退出应用程序时,这是通过CancelAsync()方法设置的)。这是最好的方法吗,还是有其他更容易被接受的方法?

在WPF中,在单独的线程上运行永无休止的循环的正确方法是什么?

你正在做一个IO绑定操作,所以你甚至不应该使用另一个线程。您应该异步处理工作,其中事件,回调,任务等触发以指示您有要处理的消息,您可以处理该消息,然后返回,而根本不使用任何线程

创建一个线程,当你等待网络活动时,它将花费大量的时间坐在那里什么都不做,这不是对资源的有效利用。