用多线程解决进度显示
来源:互联网 发布:淘宝店招模板代码 编辑:程序博客网 时间:2024/05/21 17:07
当我们要执行大量数据处理和或要执行一个执行很长时间的程序时,我们的程序为了更人性化,需要显示执行的进度,当前处理的数据,可以新开两个线程,一个于处理逻辑,一个用于显示进度
using System;
using System.Threading;
public Thread IntanceCaller;
public Thread IntanceMsg;
private void btnMunalOrder_Click(object sender, System.EventArgs e)
{
MunalOrder munalOrder=new MunalOrder(System.Convert.ToInt32 (tboxNumber.Text),ServiceCode,listBox1,lbHadDealWith,lbSuccess,lbFail);
ThreadStart ThreadStart1=new ThreadStart(munalOrder.start);
ThreadStart ThreadStart2=new ThreadStart(munalOrder.disPlay);
IntanceCaller=new Thread(new ThreadStart(ThreadStart1));
IntanceMsg=new Thread(new ThreadStart(ThreadStart2));
IntanceCaller.Start();
IntanceMsg.Start();
}
Business:
public class MunalOrder
{
private static string conn=System.Configuration.ConfigurationSettings.AppSettings["connStr"].ToString();
/////////////////////////////////////////////////
public string ServiceCode;
public ListBox lBox;
public Label lbHadDealWith;
public Label lbSuccess;
public Label lbFail;
public int oneDealWithNumber;
private AutoResetEvent myResetEvent=new AutoResetEvent(false);
public string message;
public string lbHadDealWithMessage;
public string lbSuccessMessage;
public string lbFailMessage;
/////////////////////////////////////////////////
public MunalOrder(int Number,string ywdm,ListBox listBox1,Label lbHadDealWith1,Label lbSuccess1,Label lbFail1)
{
oneDealWithNumber=Number;
ServiceCode=ywdm;
lBox=listBox1;
lbHadDealWith=lbHadDealWith1;
lbSuccess=lbSuccess1;
lbFail=lbFail1;
}
public void start()
{
conn.Open()
addPhone();
conn.Close();
}
public void disPlay()
{
while (true)
{
myResetEvent.WaitOne();
lBox.Items.Insert(0,message);
lbHadDealWith.Text=lbHadDealWithMessage;
lbSuccess.Text=lbSuccessMessage;
lbFail.Text=lbFailMessage;
}
}
private void addPhone()
{
.........//逻辑处理
lbHadDealWithMessage=System.Convert.ToString(System.Convert.ToInt32(lbHadDealWith.Text)+1);
lbSuccessMessage=System.Convert.ToString(System.Convert.ToInt32(lbSuccess.Text)+1);
lbFailMessage=lbFail.Text;
myResetEvent.Set();
}
}
}
}
- 用多线程解决进度显示
- 多线程复制文件显示进度
- android 多线程下载 显示进度 速度
- android 多线程下载 显示进度 速度
- android 多线程下载 显示进度 速度
- MFC多线程对话框显示进度和状态
- 解决Retrofit文件下载进度显示问题
- 解决Retrofit文件下载进度显示问题
- 解决Retrofit文件下载进度显示问题
- 解决用浏览器下载文件时,文件大小不显示,也没进度
- 多线程加载数据显示进度窗体的例子
- 【android】解决自定义样式progressbar的进度显示问题
- 使用多线程实现文件的复制功能,并在控制台显示复制的进度,进度以百分比表示。
- asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度
- asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度
- 多线程下载网络歌曲&播放歌曲&并用seekbar调节进度&显示歌曲两边的时间
- PHP 显示上传进度
- 命令行下显示进度
- 要去一家做CAD的公司笔试
- 关于Fedora Core 4.0 对ntfs文件系统的支持的解决办法
- .net的风风雨雨---杂七杂八
- 废弃的标签,始于HTML3.2
- 今天心情糟透了
- 用多线程解决进度显示
- ASP.NET DATAGRID中如何点击整列或模板列后弹出窗口并选中新窗口数据将值返回给模板列中的文本框
- arraylist的应用
- 连接Excel库代码
- Simple Numeric Edit Control
- 页面传值
- 要严谨!!!
- 精妙sql语句介绍
- CSS的长度单位(em)