【发布时间】:2018-07-29 22:48:48
【问题描述】:
我正在尝试从文本框中获取一个大字符串文本数组,其中行为string[]。
它可以工作,但问题是在输入大量数据时,程序的 GUI 在处理整个数组大小时会冻结片刻(与不让 GUI 滞后的异步函数不同)。避免冻结?我正在尝试使用并行,但结果似乎相同......我该如何解决这个问题?
string[] text = textBox.Lines;
if (textBox.Lines.Length > 0)
{
Parallel.For(0, textBox.Lines.Length, x =>
{
text[x] = textBox.Lines[x];
});
}
已修复:
string[] text = textBox.Lines;
if (text.Length == 0)
{
MessageBox.Show("Insert lines", "Error");
}
【问题讨论】:
-
你试过用
string text[] = textBox.Lines;替换所有代码吗? -
天哪,你是对的,没有必要循环......谢谢大家帮助我
-
在
textBox.Lines中有足够的行数来使Parallel.For值得使用是非常不可能的。创建/使用线程有很多开销。您需要占用大量 CPU 的代码才能使其物有所值。
标签: c# parallel-processing parallel-for