zoukankan      html  css  js  c++  java
  • 利用委托的BeginInvoke防止界面假死的实例

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Threading;
    namespace WinBeginInvoke
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private delegate int Mydelegate();
            private int Method()
            {
                Thread.Sleep(10000);
                Random rad = new Random();
                int i = rad.Next(1000);
                return i;
            }

            private void MyMethodComplete(IAsyncResult asyncresult)
            {
                if (asyncresult == null)
                    return;
                textBox1.Text = (asyncresult.AsyncState as Mydelegate).EndInvoke(asyncresult).ToString() ;
                button1.Enabled = true;
             
            }
            private void button1_Click(object sender, EventArgs e)
            {
                Mydelegate my = Method;
                button1.Enabled = false;
                IAsyncResult result= my.BeginInvoke(MyMethodComplete, my);
                if (!result.IsCompleted)
                {
               
               
                }
               
            }
        }
    }

  • 相关阅读:
    ServletConfig类
    坑爹的去哪儿网订酒店经历
    python + opencv + pycharm +语音生成
    最近看到的工作要求
    pip in windows
    路由器外接硬盘做nas可行吗?
    阅读201706
    scrum学习
    学习concurrency programming进展
    Reactor/Proactor的比较 (ZZ)
  • 原文地址:https://www.cnblogs.com/lijinchang/p/2035464.html
Copyright © 2011-2022 走看看