winforms 将大文本从一个RichTextBox复制到另一个RichTextBox会降低UI的速度

sbdsn5lh  于 8个月前  发布在  其他
关注(0)|答案(1)|浏览(111)

我正在尝试通过TextChanged同步两个RichTextBox的文本。不幸的是,当编辑大文本时,UI开始变慢(在250000个字符时已经明显冻结)。
下面是我的代码:

async void rtb1_TextChanged(object sender, EventArgs e)
{
    await Task.Factory.StartNew(() =>
    {
        BeginInvoke(new Action(() =>
        {
            rtb2.Text = rtb1.Text;
        }));
    });
}

我预计第二个RichTextBox中的文本将在编辑第一个文本后几毫秒后出现,而不会减速。
我指望你的支持。

bkkx9g8r

bkkx9g8r1#

BeginInvoke调用UI线程上的操作,所以Task.Factory.StartNew + BeginInvoke的奋进什么也没有完成。当UI控件出现性能问题时,多线程处理不是解决方案。您必须解决停留在UI线程领域的问题。老实说,我不知道是否有一个解决你的问题。也许RichTextBox控件根本无法有效地处理这么长的文本。

相关问题