日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

aaynctask控制多个下载进度_C# 多线程方法 控制两个进度条

發(fā)布時(shí)間:2024/9/3 C# 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 aaynctask控制多个下载进度_C# 多线程方法 控制两个进度条 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

展開(kāi)全部

using?System;

using?System.Collections.Generic;

using?System.ComponentModel;

using?System.Data;

using?System.Drawing;

using?System.Linq;

using?System.Text;

using?System.Windows.Forms;

using?System.Threading;

namespace?Demo0004

{

public?partial?class?Form1?:?Form

{

public?Form1()

{

InitializeComponent();

}

//線程開(kāi)始的時(shí)候調(diào)用的委32313133353236313431303231363533e78988e69d8331333337613766托

private?delegate?void?maxValueDelegate(int?maxValue);

//線程執(zhí)行中調(diào)用的委托

private?delegate?void?nowValueDelegate(int?nowValue);

private?void?button1_Click(object?sender,?EventArgs?e)

{

ThreadMethod?method?=?new?ThreadMethod();

//先訂閱一下事件

method.threadStartEvent?+=?new?EventHandler(method_threadStartEvent);

method.threadEvent?+=?new?EventHandler(method_threadEvent);

method.threadEndEvent?+=?new?EventHandler(method_threadEndEvent);

Thread?thread?=?new?Thread(new?ThreadStart(method.runMethod));

thread.Start();

}

///?

///?線程開(kāi)始事件,設(shè)置進(jìn)度條最大值

///?但是我不能直接操作進(jìn)度條,需要一個(gè)委托來(lái)替我完成

///?

///?ThreadMethod函數(shù)中傳過(guò)來(lái)的最大值

///?

void?method_threadStartEvent(object?sender,?EventArgs?e)

{

int?maxValue?=?Convert.ToInt32(sender);

maxValueDelegate?max?=?new?maxValueDelegate(setMax);

this.Invoke(max,?maxValue);

}

///?

///?線程執(zhí)行中的事件,設(shè)置進(jìn)度條當(dāng)前進(jìn)度

///?但是我不能直接操作進(jìn)度條,需要一個(gè)委托來(lái)替我完成

///?

///?ThreadMethod函數(shù)中傳過(guò)來(lái)的當(dāng)前值

///?

void?method_threadEvent(object?sender,?EventArgs?e)

{

int?nowValue?=?Convert.ToInt32(sender);

nowValueDelegate?now?=?new?nowValueDelegate(setNow);

this.Invoke(now,?nowValue);

}

///?

///?線程完成事件

///?

///?

///?

void?method_threadEndEvent(object?sender,?EventArgs?e)

{

MessageBox.Show("執(zhí)行已經(jīng)完成!");

}

///?

///?我被委托調(diào)用,專門設(shè)置進(jìn)度條最大值的

///?

///?

private?void?setMax(int?maxValue)

{

this.progressBar1.Maximum?=?maxValue;

}

///?

///?我被委托調(diào)用,專門設(shè)置進(jìn)度條當(dāng)前值的

///?

///?

private?void?setNow(int?nowValue)

{

this.progressBar1.Value?=?nowValue;

}

}

public?class?ThreadMethod

{

///?

///?線程開(kāi)始事件

///?

public?event?EventHandler?threadStartEvent;

///?

///?線程執(zhí)行時(shí)事件

///?

public?event?EventHandler?threadEvent;

///?

///?線程結(jié)束事件

///?

public?event?EventHandler?threadEndEvent;

public?void?runMethod()

{

int?count?=?100;??????//執(zhí)行多少次

threadStartEvent.Invoke(count,?new?EventArgs());//通知主界面,我開(kāi)始了,count用來(lái)設(shè)置進(jìn)度條的最大值

for?(int?i?=?0;?i?

{

Thread.Sleep(100);//休息100毫秒,模擬執(zhí)行大數(shù)據(jù)量操作

threadEvent.Invoke(i,?new?EventArgs());//通知主界面我正在執(zhí)行,i表示進(jìn)度條當(dāng)前進(jìn)度

}

threadEndEvent.Invoke(new?object(),?new?EventArgs());//通知主界面我已經(jīng)完成了

}

}

與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的aaynctask控制多个下载进度_C# 多线程方法 控制两个进度条的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。