c#中子執行緒控制進度條的一個簡單例子
阿新 • • 發佈:2019-01-21
{
public Form1()
{
InitializeComponent();
}
private void button1_Click( object sender, EventArgs e)
{
// 用子執行緒工作
new System.Threading.Thread( new System.Threading.ThreadStart(StartDownload)).Start();
}
//
開始下載
public void StartDownload()
{
Downloader downloader = new Downloader();
downloader.onDownLoadProgress += new Downloader.dDownloadProgress(downloader_onDownLoadProgress);
downloader.Start();
}
// 同步更新ui
void downloader_onDownLoadProgress(
long
total,
long
current)
{
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;
}
}
}
public Form1()
{
InitializeComponent();
}
private void button1_Click( object sender, EventArgs e)
{
// 用子執行緒工作
new System.Threading.Thread( new System.Threading.ThreadStart(StartDownload)).Start();
}
public void StartDownload()
{
Downloader downloader = new Downloader();
downloader.onDownLoadProgress += new Downloader.dDownloadProgress(downloader_onDownLoadProgress);
downloader.Start();
}
// 同步更新ui
void downloader_onDownLoadProgress(
{
if ( this .InvokeRequired)
{
this .Invoke( new Downloader.dDownloadProgress(downloader_onDownLoadProgress), new object [] { total, current } );
}
else
{
this .progressBar1.Value = ( int )current;
}
}
}