如何安全地获取richTextBox1.Lines交叉线程?

时间:2013-05-15 21:20:31

标签: c# multithreading thread-safety richtextbox

我需要在另一个帖子中获取richTextBox1.Lines。但我不知道如何跨越线程以获得它。

string[] lines = richTextBox1.Lines;

2 个答案:

答案 0 :(得分:1)

我同意@Hans,你应该从主UI线程中正确地将它传递到你的线程中。

...但是,因为每个人都喜欢冗长,难以阅读的单行:

        List<string> lines = new List<string>((string[])richTextBox1.Invoke(new Func<string[]>(delegate { return richTextBox1.Lines; } )) );
        foreach (string line in lines)
        {
            Console.WriteLine(line);
        }

答案 1 :(得分:0)

请检查有关从Control.BeginInvoke继承的RichTextBox.BeginInvoke(Delegate)的msdn帮助。