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 利用子线程弹出子窗体的研究
一般来说子线程都是用来处理数据的,主窗体用来实现展现,但是有些时候我们希望子窗体实现等待效果,遮挡主窗体并使主窗体逻辑正常进行,这个业务需求虽然不多,但是正好我们用到了,于是我打算把研究成果写在这了. ...
随机推荐
- SQL基础,与数据类型;
net start mssqlserver 开启数据库: net stop mssqlserver 关闭数据库: net pause mssqlserver 暂停数据库: net continu ...
- msp430 问题及解决记录
----------------------------- 2015.4.28 问题:开发板串口显示的内容为乱码 解决:使用的是原先产品主板的15200的波特率设置,但看来或者是开发板不支持11520 ...
- CentOS6编译装载nbd模块
今天突然发现CentOS系统没有nbd模块,只能重新装下,下面记录下整个编译过程: 系统:CentOS6.5 内核:2.6.32-431.el6.x86_64 [root@localhost ~]# ...
- SPAdes
用后感: 拼个小基因组还好,对于很大的基因组,文库很多的,还是不要用了.服务器768G内存,都不够用.... 主页: http://bioinf.spbau.ru/spades 说明书: http:/ ...
- HTTP 2.0 与 tomcat
tomcat 支持http2.0吗? 首先,HTTP2.0协议一级公布,只是推广和各个中间件软件的适配需要时间. stackoverflow里“Tomcat support for HTTP/2.0? ...
- R 读取clipboard内容 (MAC)
在mac上,R读取复制的data.很简单,一行命令 read.table(pipe("pbpaste"))
- C#部分---函数添加基本格式;
格式1:没有参数,没有返回值 (无参无返) 添加函数: /// <summary> /// 累加求和的方法,没有参数,没有返回值 /// </summary> public v ...
- 使用Spring + Jedis集成Redis
转自:http://my.oschina.net/u/866380/blog/521658 摘要 使用Spring和Jedis完成分片Redis的集成 一.集成环境 Tomcat7 JDK1.7 Je ...
- leetcode 134. Gas Station ----- java
There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You ...
- JavaWeb学习记录(二十五)——权限管理总结
一.面向对象思想简化数据库操作 public List<Role> getObjectsByIds(List<AdminRole> adminRoles) { L ...