c# - .NET 多线程。即时更新 UI

标签 c# .net vb.net multithreading

我有一个按钮单击事件,在里面我做了很多工作。

当我做这项工作(不是来自 UI 项目)时,我想将消息发送到 UI 以显示给用户。

我正在做类似的事情:

    void Button_Click(object sender, EventArgs e)
    {
        DoMyWork(SendMessage);
    {

    public void SendMessage(string message)
    {
        TextBox1.Text = message + "\n"; 
    }

在另一个程序集中的 DoMyWork 中,我可以调用 SendMessage 来写入文本框。不过,这些消息仅在 DoMyWork 完成时才会显示。

如何动态更新 TextBox1.Text,而不将 DoMyWork 放在 BackGround 线程上,还是必须将其放在 BackGround 线程上?我确实想阻止用户在 DoMyWork 运行时执行任何操作

谢谢

最佳答案

您可以使用BackgroundWorkerFurther reading

关于c# - .NET 多线程。即时更新 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4165355/

相关文章:

c# - 在 Web 应用程序中使用 ThreadPool.QueueUserWorkItem 是否有任何缺点?

c# - 如何判断一个窗口是模态窗口还是 MDI 窗口?

c# - 为什么对泛型的显式接口(interface)调用总是调用基础实现?

mysql - VB.NET MySQL 连接(数据库不是本地的)

c# - 从许多不同数据库生成报告的最佳实践

c# - 在 ComboBox 上获取鼠标事件

c# - 如何对我正在使用的不安全的C#CLR和程序集进行签名,而不是使数据库值得信赖

c# - 在 C# 中使用非托管 FindFirstVolume 通过 .NET 枚举卷

.net - .NET对应的Spring框架是哪个?

asp.net - 如何在 Twitter 等网站上接收和发布短信?