#region 顯示進度條
//全局參數定義以下
//private Form_ProcessBar progressForm = null;
//// 代理定義,能夠在Invoke時傳入相應的參數
//private delegate void funHandle(int nValue);
//private funHandle myHandle = null;
//調用以下:
//Thread thread = new Thread(new ThreadStart(ThreadFun));
//thread.Start();
/// <summary>
/// 線程函數中調用的函數
/// </summary>
private void ShowProgressBar()
{
progressForm = new Form_ProcessBar();
myHandle = new funHandle(progressForm.SetProgressValue);
progressForm.ShowDialog();
}函數
/// <summary>
/// 線程函數,用於處理調用
/// </summary>
private void ThreadFun()
{
MethodInvoker mi = new MethodInvoker(ShowProgressBar);
this.BeginInvoke(mi);
Thread.Sleep(1000); // sleep to show window
for (int i = 0; i < 1000; ++i)
{
Thread.Sleep(5);
// 這裏直接調用代理
this.Invoke(this.myHandle, new object[] { (i / 5) });
}
}
#endregionthis
進度條窗體代碼以下線程
一、在窗體中拖拽或手動定義一個進度條,以及label代理
二、在後臺代碼中粘貼以下代碼orm
public void SetProgressValue(int value)
{
PB_Main.Value = value;
L_OperateProcess.Text = "操做進度 :" + value.ToString() + "%";
if (value == this.PB_Main.Maximum - 1)
{
this.Close();
}
}io