c# richtextbox更新大量数据不卡死的实现方式
maxDisplayline = 1 * 1000; // 1000行
StringBuilder sb = new StringBuilder();
Stopwatch swGlobal = new Stopwatch();
string[] sblineslist = in_str.Split(new char[] { '
' }); // instr 为输入字符串,可以是文件读入的
// static readonly object lockSb = new object();
richTextBoxDisplay.Focus();
sb.Clear();
Thread.Sleep(1);
swGlobal.Reset(); swGlobal.Start();
Thread t = new Thread((ThreadStart)delegate
{
try
{
for (int i = 0; i < sblineslist.Length; i++)
{
if (stopSign)
{
return;
}
// lock(lockSb)
sb.Append(sblineslist[i] + "
");
if (i > 0 && i % maxDisplayline == 0)
{
this.Invoke((EventHandler)delegate { labelStatus.Text = "状态: " + count + "/" + manualSyncFilesFullname.Count + " " + runsecond + "s -> " + (i + 1)
+ " Act/Rest: " + swGlobal.ElapsedMilliseconds/1000 + "/" + (int)(1.0 * swGlobal.ElapsedMilliseconds * (sblineslist.Length - (i+1)) /(i+1) /1000) + "s";
labelStatus.Update(); });
if (sb.Length > 0)
{
// lock(lockSb)
this.richTextBoxDisplay.Text = this.richTextBoxDisplay.Text + sb.ToString();
sb.Clear();
}
maxDisplayline = maxDisplayline * ((int)Math.Sqrt(i/ maxDisplayline));
}
}
if (sb.Length > 0)
{
// lock(lockSb)
this.richTextBoxDisplay.Text = this.richTextBoxDisplay.Text + sb.ToString();
sb.Clear();
}
this.Invoke((EventHandler)delegate { labelStatus.Text = "状态: " + count + "/" + manualSyncFilesFullname.Count + " " + runsecond + "s -> " + sblineslist.Length.ToString()
+" Act: " + swGlobal.ElapsedMilliseconds / 1000 + "s";
labelStatus.Update(); });
}
catch (Exception ex)
{
try
{
stopSign = true;
this.Invoke((EventHandler)delegate { labelStatus.Text = "异常错误: " + ex.Message; labelStatus.Update(); });
}
catch { }
}
});
t.IsBackground = true;
t.Start();
Thread.Sleep(33);
while (!stopSign && t != null && t.IsAlive)
{
Application.DoEvents();
Thread.Sleep(3);
}
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播