C# 中子线程控制进度条的一个简单例子
2012-07-22 10:08
531 查看
这个问题来自社区提问,代码保留一份用来以后回答
using
System;
using
System.ComponentModel;
using
System.Windows.Forms;
namespace
WindowsApplication4
{
///
<summary>
///
gui 类
///
</summary>
public partial
classForm1 : Form
{
public
Form1()
{
InitializeComponent();
}
private
voidbutton1_Click(
objectsender, EventArgs e)
{
//
用子线程工作
newSystem.Threading.Thread(
new System.Threading.ThreadStart(StartDownload)).Start();
}
//
开始下载
publicvoid
StartDownload()
{
Downloader downloader=
newDownloader();
downloader.onDownLoadProgress+=
new Downloader.dDownloadProgress(downloader_onDownLoadProgress);
downloader.Start();
}
//
同步更新ui
voiddownloader_onDownLoadProgress(
long total, longcurrent)
{
if
( this
.InvokeRequired)
{
this
.Invoke(new
Downloader.dDownloadProgress(downloader_onDownLoadProgress),new
object[]
{ total, current });
}
else
{
this
.progressBar1.Maximum=
( int
)total;
this
.progressBar1.Value=
( int
)current;
}
}
}
///
<summary>
///
下载类
///
</summary>
public class
Downloader
{
//
委托
publicdelegate
void
dDownloadProgress(long
total, long current);
//
事件
publicevent
dDownloadProgress onDownLoadProgress;
//
开始模拟工作
publicvoid
Start()
{
for
( int
i =0
; i <
100; i
++ )
{
if
(onDownLoadProgress!=
null)
onDownLoadProgress(100
, i);
System.Threading.Thread.Sleep(100
);
}
}
}
}
相关文章推荐
- c#中子线程控制进度条的一个简单例子(多线程问题)
- c#中子线程控制进度条的一个简单例子
- C#中子线程控制进度条的一个简单例子
- c#中子线程控制进度条的一个简单例子
- C#中子线程控制进度条的一个简单例子
- c#中子线程控制进度条的一个简单例子
- c#中子线程控制进度条的一个简单例子
- c#中子线程控制进度条的一个简单例子
- c#中子线程控制进度条的一个简单例子
- c#中子线程控制进度条的一个简单例子
- c#中子线程控制进度条的一个简单例子
- c#中子线程控制进度条的一个简单例子
- c#中子线程控制进度条的一个简单例子 - jinjazz - CSDNBlog
- c#中子线程控制进度条的一个简单例子
- c#中子线程控制进度条的一个简单例子
- 一个简单的C#多线程间同步的例子
- 一个简单的C#多线程间同步的例子
- 一个简单的C#多线程间同步的例子 (转)
- 一个简单的C#多线程间同步的例子
- 一个简单的C#多线程间同步的例子