永发信息网

c# 多线程具体实现方法

答案:2  悬赏:30  手机版
解决时间 2021-08-01 10:21
  • 提问者网友:酱爆肉
  • 2021-07-31 13:30
c# 多线程具体实现方法
最佳答案
  • 五星知识达人网友:罪歌
  • 2021-07-31 14:46

新建一个窗体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);


}

全部回答
  • 1楼网友:渡鹤影
  • 2021-07-31 15:44
线程数量我们可以通过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();//逐个开启线程

}

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

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯