UI程序检查内部事件的最佳方法

本文关键字:最佳 方法 事件 内部 程序 检查 UI | 更新日期: 2023-09-27 18:31:19

我有一个WinForms应用程序,它是在逻辑层上运行的UI层。

我的应用程序是一个客户端-服务器 IM 程序。当内部程序接受传入的连接请求时,我希望通过简单的按钮文本更改来更新 UI。问题是关注点的分离,脱钩。

执行此操作的一种方法是公开一个内部布尔值,该布尔值在逻辑层处理请求时由逻辑层更改,并由 UI 在其自己的线程上不断检查。

这对我来说似乎不是最好的方法,我认为有更好的内置方法来做到这一点?

UI程序检查内部事件的最佳方法

在"内部"程序中公开委托:

public Action<bool> RequestProcessed { get; set; }

处理请求时内部代码中的某个位置

if(RequestProcessed != null)
   RequestProcessed(true);

在 gui 中,您创建一个方法

public void SomethingHappend(bool processed) {
  // Do gui stuff
  if(processed) {
  }
  else {
  }
}

在 gui 中,像这样订阅:

innerInstance.RequestProcessed = SomethingHappened;