从线程内更新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。
答案 0 :(得分:2)
我会说在observer pattern之后使用活动将是您最好的选择。这就是它们的设计用途。
观察者模式是一个软件设计模式,其中一个对象, 称为主题,维护其受抚养人名单,称为 观察者,并自动通知他们任何状态变化, 通常通过调用他们的方法之一。
答案 1 :(得分:0)
在Windows窗体中,您可以使用BackgroundWorker类。