zoukankan
html css js c++ java
c# 多线程基本操作
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
using
System.Threading;
namespace
winfromDeom
{
public
partial
class
Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
private
void
Form1_Load(
object
sender, EventArgs e)
{
button2.Enabled
=
false
;
}
//
声名一个线程
public
Thread t;
public
delegate
void
upUI();
private
void
button1_Click(
object
sender, EventArgs e)
{
progressBar1.Value
=
0
;
button1.Enabled
=
false
;
button2.Enabled
=
true
;
//
实列化一个线程
t
=
new
Thread(
new
ThreadStart(doThread));
//
设置是否是后台执行的线程
t.IsBackground
=
true
;
//
开始执行这个线程
t.Start();
}
private
void
doThread()
{
//
更新UI委托
upUI upui
=
new
upUI(upDataUi);
try
{
while
(
true
)
{
Thread.Sleep(
0
);
//
开始更新UI
this
.Invoke(upui);
}
}
finally
{
Thread.Sleep(
5000
);
}
}
private
void
button2_Click(
object
sender, EventArgs e)
{
//
设置为终止状态
t.Abort();
//
阻塞这个线程
t.Join();
button1.Enabled
=
true
;
button2.Enabled
=
false
;
}
/**/
///
<summary>
///
执行UI更新的方法
///
</summary>
private
void
upDataUi()
{
if
(progressBar1.Value
!=
100000
)
{
progressBar1.Value
=
progressBar1.Value
+
10
;
label1.Text
=
progressBar1.Value.ToString();
}
else
{
t.Abort();
t.Join();
button1.Enabled
=
true
;
button2.Enabled
=
false
;
}
}
private
void
Form1_FormClosing(
object
sender, FormClosingEventArgs e)
{
t.Abort();
t.Join();
}
}
}
查看全文
相关阅读:
WeChall_Training: ASCII (Training, Encoding)
WeChall_Prime Factory (Training, Math)Training: WWW-Robots (HTTP, Training)
WeChall_Training: Crypto
WeChall_ Training: Stegano I (Training, Stegano)
WeChall_Training: Get Sourced (Training)
WeChall_Prime Factory (Training, Math)
[loj3246]Cave Paintings
[luogu5423]Valleys
[loj3247]Non-Decreasing Subsequences
[luogu5426]Balancing Inversions
原文地址:https://www.cnblogs.com/wubiyu/p/818810.html
最新文章
【年中总结】生命很贵,请别浪费
数据库无法修改问题解决
【年中总结】运动,思考,奋斗,成长。
如何解决错误0×80071AC3
笔记本电池的那些事儿
请这样爱你的移动硬盘
Android应用如何反馈Crash报告
使用 Java 程序写文件时,记得要 flush()
Android详细的对话框AlertDialog.Builder使用方法
Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
热门文章
Android美工坊--listview更改选中时item背景色
android中listview的一些样式设置
Android开发学习笔记:浅谈WebView
windows下搭建tomcat运行环境
android——彻底关闭——应用程序
PullToRefresh------ListView的使用
POJ_1564_dfs
POJ_1208_模拟
CCF_201312-4_有趣的数
WeChall_Encodings: URL (Training, Encoding)
Copyright © 2011-2022 走看看