zoukankan      html  css  js  c++  java
  • 通过委托更新UI(异步加载)

    来自: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..."; } } } }
  • 相关阅读:
    ubuntu 下安装Angular2-cli脚手架
    git的使用及常用命令(二)
    framework7+node+mongo项目
    LINUX下安装搭建nodejs及创建nodejs-express-mongoose项目
    初学strurs基础
    JAVA Struts2 搭建
    mongodb的基本操作
    LightOj_1342 Aladdin and the Magical Sticks
    Codeforces Round #Pi (Div. 2)
    Codeforces Round #315 (Div. 2)
  • 原文地址:https://www.cnblogs.com/asdyzh/p/9945787.html
Copyright © 2011-2022 走看看