使用委托: // 主程序中 MainManager patManager=new Manager(); patManager.onReportProgress=new DoReportProgress(OnReportProgress); // 同步更新进程条 patManager.DisposeRecord(); // 执行数据处理privatevoid OnReportProgress(int current,string strInfor) { if (this.InvokeRequired) { this.Invoke(new DoReportProgress(OnReportProgress),newobject[] { current%100, strInfor }); } else { this.tsprogressMain.Maximum=100;this.tsprogressMain.Value= (int)current%100; this.tsprogressInfor.Text= strInfor;this.statusMain.Refresh(); } }// MainManager类 namespace PatrolManage { public delegatevoid DoReportProgress(int current,string strInfor); public class MainManager { public DoReportProgress onReportProgress; publicvoid DisposeRecord() { for (int i=0; i<100; i++) { onReportProgress(i,"正在处理数据..."); // do something } } } }
晕, 这代码贴得够乱.// 主程序中 MainManager patManager = new Manager(); patManager.onReportProgress = new DoReportProgress(OnReportProgress); // 同步更新进程条 patManager.DisposeRecord(); // 执行数据处理private void OnReportProgress(int current, string strInfor) { if (this.InvokeRequired) { this.Invoke(new DoReportProgress(OnReportProgress),new object[] { current%100, strInfor }); } else { this.tsprogressMain.Maximum = 100; this.tsprogressMain.Value = (int)current % 100; this.tsprogressInfor.Text = strInfor; this.statusMain.Refresh(); } }//MainManager类 namespace PatrolManage { public delegate void DoReportProgress(int current, string strInfor); public class MainManager { public DoReportProgress onReportProgress; public void DisposeRecord() { for (int i = 0; i < 100; i++) { onReportProgress(i, "正在处理数据..."); // do something } } } }
namespace PatrolManage { public delegate void DoReportProgress(int current, string strInfor); public class MainManager { public DoReportProgress onReportProgress; public void DisposeRecord() { for (int i = 0; i < 100; i++) { onReportProgress(i, "正在处理数据..."); // do something } } } } do something 写算法? 那我的算法不就要重复执行100遍
// 主程序中
MainManager patManager=new Manager();
patManager.onReportProgress=new DoReportProgress(OnReportProgress); // 同步更新进程条 patManager.DisposeRecord(); // 执行数据处理privatevoid OnReportProgress(int current,string strInfor)
{
if (this.InvokeRequired)
{
this.Invoke(new DoReportProgress(OnReportProgress),newobject[] { current%100, strInfor });
}
else
{
this.tsprogressMain.Maximum=100;this.tsprogressMain.Value= (int)current%100;
this.tsprogressInfor.Text= strInfor;this.statusMain.Refresh();
}
}// MainManager类
namespace PatrolManage
{
public delegatevoid DoReportProgress(int current,string strInfor);
public class MainManager
{
public DoReportProgress onReportProgress;
publicvoid DisposeRecord()
{
for (int i=0; i<100; i++)
{
onReportProgress(i,"正在处理数据...");
// do something
}
}
}
}
MainManager patManager = new Manager();
patManager.onReportProgress = new DoReportProgress(OnReportProgress); // 同步更新进程条
patManager.DisposeRecord(); // 执行数据处理private void OnReportProgress(int current, string strInfor)
{
if (this.InvokeRequired)
{
this.Invoke(new DoReportProgress(OnReportProgress),new object[] { current%100, strInfor });
}
else
{
this.tsprogressMain.Maximum = 100; this.tsprogressMain.Value = (int)current % 100;
this.tsprogressInfor.Text = strInfor; this.statusMain.Refresh();
}
}//MainManager类
namespace PatrolManage
{
public delegate void DoReportProgress(int current, string strInfor);
public class MainManager
{
public DoReportProgress onReportProgress;
public void DisposeRecord()
{
for (int i = 0; i < 100; i++)
{
onReportProgress(i, "正在处理数据...");
// do something
}
}
}
}
namespace PatrolManage
{
public delegate void DoReportProgress(int current, string strInfor);
public class MainManager
{
public DoReportProgress onReportProgress;
public void DisposeRecord()
{
for (int i = 0; i < 100; i++)
{
onReportProgress(i, "正在处理数据...");
// do something
}
}
}
}
do something 写算法?
那我的算法不就要重复执行100遍
至于是否把运算作为子线程来做, 看你个人而定. 上面的代码是我在项目中用到的, 所以就直接拷了下来.
后台线程组件backgroundworker