从另一个线程操纵gui元素 - 这样做的常用方法是什么?

时间:2014-02-17 21:27:06

标签: c# multithreading user-interface invoke

我一直在寻找很多关于“操纵来自另一个线程的gui元素”的网站,我发现的每个解决方案都是(或看起来)与其他解决方案完全不同......有些解决方案是1-3行长而其他解决方案长达50多行。

例如,我有2个不同的小工作解决方案。我的问题是:哪一个是常见的解决方案?

这两个代码片段都是从另一个线程(而不是gui-thread)调用的。

// Solution 1.)
    frame.rtbChatbox.Invoke(new Action(() => frame.rtbChatbox.AppendText("\n" + line)));

// Solution 2.) 
    frame.rtbChatbox.Invoke((Action)delegate {
       frame.rtbChatbox.AppendText("\n" + line);
    });

1 个答案:

答案 0 :(得分:0)

列出的两个解决方案在功能上是等效的。它们是两种不同的语法,每种语法都用于创建匿名方法。

使用你想要的任何一个。