110,534
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WinTestUrl
{
public delegate void SetPos(int ipos);
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public void SetTextMessage(int ipos)
{
if (this.InvokeRequired)
{
SetPos setpos = new SetPos(SetTextMessage);
this.Invoke(setpos, new object[] { ipos });
}
else
{
this.label1.Text = ipos.ToString() + "/10";
this.progressBar1.Value = Convert.ToInt32(ipos);
}
}
public void button2_Click(object sender, EventArgs e)
{
Thread fThread = new Thread(new ThreadStart(SleepT));//开辟一个新的线程
fThread.Start();
}
public void SleepT()
{
for (int i = 1; i <= 100; i++)
{
System.Threading.Thread.Sleep(100);//没什么意思,单纯的执行延时
SetTextMessage(10 * i / 100);
}
}
}
}
public Thread th1;
delegate void SetValues(int i);
delegate void ShowProBar(int i);
private void button1_Click(object sender, EventArgs e)
{
th1 = new Thread(new ThreadStart(test1));
th1.Start();
}
private void test1()
{
int i = 100;
while (i > -1)
{
setvalue1(i);
ShowProgress1(i);
i--;
Thread.Sleep(1000);
}
}
private void setvalue1(int i)
{
if (this.InvokeRequired)
{
this.Invoke(new SetValues(setvalue1), new object[] {i});
}
else
{
自己的操作
}
}
private void ShowProgress1(int i)
{
if (this.progressBar1.InvokeRequired)
{
this.Invoke(new ShowProBar(ShowProgress1), new object[] { i });
}
else
{
progressBar1.Value = 100-i;
progressBar1.Visible=true;
}
}