C# 从线程内更新UI上的标签

C# 从线程内更新UI上的标签,c#,C#,从线程中更新UI的常规方法是什么 例如,我在一个类中有一个处理用户登录的方法。在这个方法中,我希望在登录过程的各个阶段以UI(主线程)上的标签的形式向用户提供反馈 我不想在方法中包含更新UI的代码,因为该类本身在其他项目中使用,也被其他团队成员在不同项目中使用。在某些项目中,我可能会决定将其保存到日志文件以进行调试,而不是更新UI上的标签。我不想创建任何形式的耦合 最好的解决方案是什么?事件会是一种方式吗 顺便说一句,我正在Windows窗体中使用.NET 4.5和C#5。您可以使用类。我想说,

从线程中更新UI的常规方法是什么

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

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

最好的解决方案是什么?事件会是一种方式吗


顺便说一句,我正在Windows窗体中使用.NET 4.5和C#5。

您可以使用类。

我想说,遵循并使用事件将是您的最佳选择。这就是它们的设计目的

观察者模式是一种软件设计模式,其中对象, 名为subject,维护其从属项的列表,名为 观察者,并自动通知他们任何状态更改, 通常通过调用他们的方法之一


啊,这就是我要找的。几天前我在想这个模式,但想不起它的名字。非常感谢。
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
}