2

从线程内更新 UI 的传统方法是什么?

例如,我在处理用户登录的类中有一个方法。在此方法中,我想在登录过程的各个阶段以 UI(主线程)上的标签形式向用户提供反馈。

public void userLogin(User _user)
{
    // 1. Navigate to site.com
    // 2. Update label on UI
    // 3. Attempt login
    // 4. Update label on UI
    // 5. Check login status
    // 6. Update label on UI
}

我不想在方法中包含更新 UI 的代码,因为该类本身在其他项目中使用,并且由不同项目中的其他团队成员使用。在某些项目中,我可能决定将其保存到日志文件中进行调试,而不是更新 UI 上的标签。我不想创建任何形式的耦合。

最好的解决方案是什么?事件是要走的路吗?

顺便提一句。我正在使用 .NET 4.5 和 C# 5。

4

2 回答 2

2

我会说遵循观察者模式并使用事件将是您的最佳选择。这确实是它们的设计用途。

观察者模式是一种软件设计模式,其中称为主体的对象维护其依赖项列表(称为观察者),并自动通知他们任何状态更改,通常通过调用他们的方法之一。

于 2013-03-12T02:06:19.587 回答
0

在 Windows 窗体中,您可以使用BackgroundWorker类。

于 2013-03-12T01:59:37.187 回答