C#子线程刷新界面并关闭窗体
目的:要循环刷新界面上的控件,同时不影响用户操作。循环结束后关闭窗体。
步骤:先创建一个窗体,窗体中拖入一个lable控件(label1),一个button控件(button1)
代码窗口输入:
/// <summary>
/// 开始按钮单击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
ThreadStart start = new ThreadStart(ShowTime);
Thread t1 = new Thread(start); //创建子线程,循环刷新label1
t1.Start(); //线程开始
} /// <summary>
/// 刷新label1
/// </summary>
private void label1ShowTime()
{
if (label1.InvokeRequired) //判断当前线程是否和控件所属线程为同一线程
{
label1.Invoke(new Action(label1ShowTime)); //不为同一线程,则使用委托执行该方法本身
}
else
{
label1.Text = DateTime.Now.ToLongTimeString(); //为同一线程则直接刷新label1
}
} /// <summary>
/// 子线程执行的方法,循环5次刷新窗体的label1
/// </summary>
protected void ShowTime()
{
for (int i = ; i < ; i++) //循环刷新界面中的时间
{
Thread.Sleep();
label1ShowTime();
}
this.Invoke(new Action(this.Close)); //循环结束后,使用委托关闭该窗体
}
C#子线程刷新界面并关闭窗体的更多相关文章
- Android -- ViewRoot,关于子线程刷新UI
Android在4.0之后执行线程更新UI操作会报异常:CalledFromWrongThreadException:Only the original thread that created a v ...
- wpf利用线程制作初始界面和关闭窗体特效
1.首先定义初始窗体,和主窗体. 初始窗体(StartWindow) 主窗体(MainWindow): 2.在主窗体界面中,加载初始窗体.注意在线程中操作UI元素需要使用BeginInvoke或者In ...
- 19 子线程刷新UI runOnUiThread
package com.example.com.fmyh; import java.io.BufferedReader; import java.io.File; import java.io.Fil ...
- C#多线程应用:子线程更新主窗体控件的值(二)
在上篇文章中,我已经给大家列了一个在主线程中实现的方式,这篇文章来给大家说说使用Invoke的方式的例子: 对于不代理不太熟悉的朋友,建议先查查相关资料: 例子一: 在C#中,直接在子线程中对窗体上的 ...
- iOS开发之线程组解决请求多个接口数据,完成后,再刷新界面
1.多任务请求接口,完成后,在刷新数据,常用方法 2018年07月18日 16:34:38 hbblzjy 阅读数:1382 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...
- EXC_BAD_ACCESS(code=2,address=0xcc 异常解决 及 建议不要在子线程中刷新界面
iOS 上不建议在非主线程进行UI操作,在非主线程进行UI操作有很大几率会导致程序崩溃,或者出现预期之外的效果. 我开始不知道这一点,在子线程中进行了弹窗操作,结果程序就出问题了! 报的错误是(EXC ...
- Android 子线程无法刷新UI界面
问题:在Android开发中,子线程无法直接更改UI界面视图的刷新 这个时候 Handler 起到了至关重要的作用. 简单来说 , Handler就是用来传递消息的. Handler可以当成子线程与主 ...
- pyqt点击右上角关闭界面但是子线程仍在运行
现象: 通过右上角的叉关闭图形界面后,程序运行的子线程却不会被自动关闭,依然留存在系统中原因: 子线程没有正确关闭解决方法: 1.将子线程设置成守护线程 self.your_thread = thre ...
- WPF 利用子线程弹出子窗体的研究
一般来说子线程都是用来处理数据的,主窗体用来实现展现,但是有些时候我们希望子窗体实现等待效果,遮挡主窗体并使主窗体逻辑正常进行,这个业务需求虽然不多,但是正好我们用到了,于是我打算把研究成果写在这了. ...
随机推荐
- 6、SQL基础整理(日期时间数据类型,转换函数)
日期时间数据类型 *系统常量: @@DATEFIRST(返回当前时间) DATEADD 增加时间 语法:DATEADD (datepart , number , date ) select DATEA ...
- MongoDB在Windows下安装及配置
第一步 下载MongoDB http://www.mongodb.org/downloads 第二步 解压到D:\mongodb\目录下,为了命令行的方便,可以把D:\mongodb\bin加到系统环 ...
- myEclipse使用有感
一.破解 使用myeclipse 10.0版本:然后破解:(之前我使用10.7破解成功了,但是发布有问题) 二.发布注意事项 1.清理发布目录, 不要有多个项目搅和 2.js相关, 注意清理浏览器缓存 ...
- 学习方法和阶段介绍 、 iOS界面开发引入 、 构造第一个App 、 视图控制器和视图 、 控件与事件 、 InterfaceBuilder
1 创建并运行第一个App 1.1 问题 使用Xcode创建一个App项目,该应用实现功能在界面上显示Hello World标签,在模拟器中的运行结果如图-1所示: 图-1 1.2 方案 分析图-1, ...
- 贝努利概率 matlab
参考:http://zhidao.baidu.com/link?url=3XZm35XpFf_kbADwDHEERtgFMKqHftiS5SyTCWcBtlF7B7zeNgoNqIzXxpJsHtBI ...
- C++学习笔记35:函数模板
函数模板 函数模板的目的 设计通用的函数,以适应广泛的数据型式 函数模板的定义格式 template<模板型式参数列表>返回值型式 函数名称(参数列表): 原型:template<c ...
- Linux Shell 命令
(1) 操作一个文件并对文件查询行进行切分处理 (或者1-) (2) 操作文件进行去重并显示重复次数 | sort | uniq -c (3) 查看总的汇总行数 | sort | uniq -c | ...
- mysql中在表中insert数据时,有重复主键id时,变成update
MySQL 自4.1版以后开始支持INSERT … ON DUPLICATE KEY UPDATE语法 例如: id name sex age 1 kathy male 23 2 Javer f ...
- android定时更新文件
static变量在程序退出时不会清空的,除非系统内存不足以运行其他程序,才会清空.给SD卡上的文件过期时间.可以简单的在给文件命名时后面加个创建时间,在下次访问时判断是否需要更新.比如本来文件名是 i ...
- jquery 平滑滚动页面到某个锚点
$(document).ready(function() { $("a.topLink").click(function() { $ ...