C#窗体的加载等待(BackgroundWorker控件)实现
2024-09-28 01:58:41
窗体拉一个Button按钮和一个加载等待显示的label,
label默认隐藏,点击按钮时显示这个label,加载完再隐藏
1、工具箱拉BackgroundWorker控件到窗体
2、backgroundWorker1属性-闪电图标-双击点进去DoWork事件和RunWorkerCompleted事件
public partial class Ceshi2 : Form
{
public Ceshi2()
{
InitializeComponent();
CheckForIllegalCrossThreadCalls = false;//Dowork()方法里有控件会报异常
}
private void button1_Click(object sender, EventArgs e)
{
label1.Visible = true;
backgroundWorker1.RunWorkerAsync();//开始后台操作,引发DoWork事件
}
//调用 RunWorkerAsync 方法时发生
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = ; i < ; i++)
{
Thread.Sleep();
}
} //后台操作已完成、被取消或引发异常时发生
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
label1.Visible = false; }
}
异常1:线程间操作无效: 从不是创建控件的线程访问它,在构造方法里加这一行即可
public Ceshi2()
{
InitializeComponent();
CheckForIllegalCrossThreadCalls = false;//Dowork()方法里有控件会报异常
}
如果哪里有异常,try...catch()...
异常2:在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级
try
{
//代码
}
catch (ArgumentException ex)
{ }
最新文章
- 使用Eclipse构建Maven项目 (转)
- C# 小规模查找集合性能测试
- Sublime Text 3插件之Emmet:HTML/CSS代码快速编写神器
- UVa10047 The Monocycle
- 寻找第K小元素
- 利用cookie改变背景色
- MODULE_AUTHOR、MODULE_DESCRIPTION、MODULE_LICENSE宏
- 关于iOS中用AudioFile相关API解码或播放AAC_HE_V2时仅仅能识别单声首22.05k採样率的问题
- Linux lsof命令详解和使用示例【转】
- web项目中url-pattern改成&#39;/&#39;后,js、css、图片等静态资源(404)无法访问问题解决办法
- Linux下C程序的存储空间布局
- SQL SERVER-创建Alwayson
- ABP大型项目实战(1) - 目录
- SQL Server 复制表结构以及数据,去除表中重复字段
- React组件中的key
- django过滤器,日期格式化
- at 命令
- hdu 4957 贪心破木桶接水大trick
- DirectorySearcher.Filter 属性(转)
- Tomcat安全配置与性能优化