C# winform程序防止前台卡死
https://blog.csdn.net/Emiedon/article/details/51069193
在实际开发中,如果需要实时的显示后台处理的情况,我们可能要在前台用一些控件去显示
所以我们可能会写诸如label1.text=...,button1.hide();等等这样的代码,但是我们会发现并不会立刻显示,作为一只菜鸟,我不清楚是怎么回事,但是我找到了一个解决办法
Application.DoEvents()
这个命令可以立即刷新前台,所以可以在程序代码里的适当位置添加,可以模拟出同步的感觉,但是因为这个过程比较耗时,所以会给计算性能带来一些影响,还是慎重使用吧
https://bbs.csdn.net/topics/380001753
Application.DoEvents();
这个是继续执行主线程操作
/// <param name="i">时间 单位:秒</param>
private
void
dealTimer(
int
i)
{
DateTime dt1 = DateTime.Now;
// 获取当前时间
DateTime dt2;
int
diff = 0;
while
(diff < i)
{
dt2 = DateTime.Now;
TimeSpan ts = dt2.Subtract(dt1);
diff = (
int
)ts.TotalSeconds;
Application.DoEvents();
}
}
我自己写的
if (cts.Token.IsCancellationRequested)
{
Console.WriteLine("线程被终止!");
break;
}
Application.DoEvents();
{
Console.WriteLine("线程被终止!");
break;
}
Application.DoEvents();
分类:
C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现