등급:C\#의뢰 를 통 해 UI 업데이트(비동기 로 딩)
5900 단어 비동기 로드
:http://blog.csdn.net/gongzhe2011/article/details/27351853
using System.Windows.Forms;
using System.Threading;
using System;
namespace Threaddemo1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
delegate void aa(string s);//
private void Form1_Load(object sender, EventArgs e)
{
Thread newthread = new Thread(new ThreadStart(ttread));
newthread.Start();
}
void ttread()
{
pri("77");
}
private delegate void ProgressBarShow(int i);
private void pri(string p)
{
bool name = richTextBox1.InvokeRequired;
//MessageBox.Show(name.ToString());
if (!richTextBox1.InvokeRequired)// , , if(!InvokeRequired)
{
Loadthread();
}
else
{
// MessageBox.Show(" ");
aa a1 = new aa(pri);
Invoke(a1, new object[] { p });//
}
}
private void Loadthread()
{
string s = string.Empty;
for (int b = 0; b < 10000; b++)
{
this.ShowPro(b);
s += b.ToString();
}
//MessageBox.Show(" ");
LoadRichebox(s);
}
void send() {
Thread.CurrentThread.Abort();
}
private void LoadRichebox(string s)
{
richTextBox1.Text = s;
}
private void ShowPro(int value)
{
if (this.InvokeRequired)
{
this.Invoke(new ProgressBarShow(ShowPro), value);
}
else
{
this.progressBar1.Value = value;
this.label1.Text = value + "% Processing...";
}
}
}
}