永发信息网

c# 多线程具体实现方法

答案:2  悬赏:30  手机版
解决时间 2021-08-01 10:21
c# 多线程具体实现方法
最佳答案

新建一个窗体frmUpLoad 放置一个进度条


复制下面的内容


private delegate void SetPos(int ipos);//定义委托
private void SetTextMessage(int ipos)
{
if (this.InvokeRequired)
{
SetPos setpos = new SetPos(SetTextMessage);
this.Invoke(setpos, new object[] { ipos});
}
else
{
this.progressBar1.Value = Convert.ToInt32(ipos);
if (this.progressBar1.Value == 100)
{
this.Close();
}
}
}


private void frmUpLoad_Load(object sender, EventArgs e)
{
this.progressBar1.Maximum = 100;
Thread fThread = new Thread(
new ThreadStart(UpdateSoft));
fThread.Start();
}


public void UpdateSoft()


{


//这里为你升级程序的方法


//如:有10个新升级的DLL文件


//第一个升级完成 10%


SetTextMessage(10);


//....


//第十个升级完成 100%


SetTextMessage(100);


}

全部回答
线程数量我们可以通过for循环来实现,就如同当年初学编程的打点程序一样。

比如已知用户指定了n(它是一个int型变量)个线程吧,可以用如下方法开启五个线程

Thread[] downloadThread;//声名下载线程,这是C#的优势,即数组初始化时,不需要指定其长度,可以在使用时才指定。这个声名应为类级,这样也就为其它方法控件它们提供了可能

ThreadStart startDownload = new ThreadStart( DownLoad );//线程起始设置:即每个线程都执行DownLoad()

downloadThread = new Thread[ n ];//为线程申请资源,确定线程总数

for( int i = 0; i < n; i++ )//开启指定数量的线程数

{

downloadThread[i] = new Thread( startDownload );//指定线程起始设置

downloadThread[i].Start();//逐个开启线程

}

好了,实现控制开启线程数是不是很简单啊

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么我20岁了才长最里面的那颗牙齿?
目前我国的总的经济政策是怎样的?
星之卡比这关怎么玩?
蕲春县黄冈蕲春钢材市场在什么地方啊,我要过
初一科学的活动星图
我用的金山杀毒软件这里面的金山网镖是不是和
明知道一段感情不会长久 你会继续爱下去吗
雨林木风Windows Vista ULTIMATE With SP1.Y2
怎样才能使自己变的幽默呢?
QQ华夏70级85级怎么升级快啊
甘南县齐齐哈尔健晟星期天火锅宏达礼仪餐厅我
什么是格式全部是MP3格式的
登高有关的李白诗句,李白哪首诗是写庐山的?
《倔强的萝卜》主要演员是那些?
耒阳市衡阳情缘麻辣烫在哪里啊,我有事要去这
推荐资讯
北塔区邵阳白塔区卫生监督所怎么去啊,谁知道
邓州市南阳福记旅馆怎么去啊,谁知道地址啊
我家突然就多出很多因特网的软件,是恶意软件,
处女座2010年的运势怎么样
恳请大家给个看法 我这个手机号码值多少钱?
吃松仁有什么好处?
游武汉东湖作文,武汉东湖海洋世界一日游作文3
What is the most expensive way ( )?He take
在全封闭的学校 像我们这些业余爱好者应怎么
紧急在网上如果因为一件不开心的事你们分手了
滔滔填资料的时候写生日吗?
怎样能更好的让心静下来?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?