C#進(jìn)度條的使用及開(kāi)發(fā)淺析
C#進(jìn)度條的使用及開(kāi)發(fā)的情況是什么呢?
在用c#做WinFrom開(kāi)發(fā)的過(guò)程中。我們經(jīng)常需要用到進(jìn)度條(ProgressBar)用于顯示進(jìn)度信息。這時(shí)候我們可能就需要用到多線程,如果不采用多線程控制進(jìn)度條,窗口很容易假死(無(wú)法適時(shí)看到進(jìn)度信息)。下面我就簡(jiǎn)單結(jié)合一個(gè)我寫(xiě)的例子給大家做一個(gè)介紹。
C#進(jìn)度條的使用及開(kāi)發(fā)第一步:
設(shè)計(jì)界面不說(shuō)了...注意需要引用
- using System.Threading;
C#進(jìn)度條的使用及開(kāi)發(fā)第二步:
定義一個(gè)代理,用于更新ProgressBar的值(Value)
- //更新進(jìn)度列表
- private delegate void SetPos(int ipos);
C#進(jìn)度條的使用及開(kāi)發(fā)第三步:
進(jìn)度條值更新函數(shù)(參數(shù)必須跟聲明的代理參數(shù)一樣)
- private void SetTextMessage(int ipos)
- {
- if (this.InvokeRequired)
- {
- SetPos setpos = new SetPos(SetTextMessage);
- this.Invoke(setpos, new object[] { ipos});
- }
- else
- {
- this.label1.Text = ipos.ToString() + "/100";
- this.progressBar1.Value = Convert.ToInt32(ipos);
- }
- }
C#進(jìn)度條的使用及開(kāi)發(fā)第四步:
C#進(jìn)度條的使用及開(kāi)發(fā)函數(shù)實(shí)現(xiàn)
- private void button1_Click(object sender, EventArgs e)
- {
- Thread fThread = new Thread(
- new ThreadStart(SleepT));
- //開(kāi)辟一個(gè)新的線程
- fThread.Start();
- }
C#進(jìn)度條的使用及開(kāi)發(fā)第五步:
C#進(jìn)度條的使用及開(kāi)發(fā)新的線程執(zhí)行函數(shù):
- private void SleepT()
- {
- for (int i = 0; i < 500; i++)
- {
- System.Threading.Thread.Sleep(100);
- //沒(méi)什么意思,單純的執(zhí)行延時(shí)
- SetTextMessage(100 * i / 500);
- }
- }
到此一個(gè)簡(jiǎn)單的進(jìn)度條程序做好了。
C#進(jìn)度條的使用及開(kāi)發(fā)的基本情況就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C#進(jìn)度條的使用及開(kāi)發(fā)有所幫助。
【編輯推薦】