zoukankan      html  css  js  c++  java
  • 多线程更新UI 武胜

    private delegate object GetButtonTagDelegate(ref Button b);

    private object GetButtonTag(ref Button b)
            {
                if (InvokeRequired)
                {
                    return Invoke(new GetButtonTagDelegate(GetButtonTag), new object[] {b});
                }

                return b.Tag;
            }

    private delegate int GetComboBoxSelectedIndexDelegate(ref ComboBox cb);

    private int GetComboBoxSelectedIndex(ref ComboBox cb)
            {
                if (InvokeRequired)
                {
                    return (int) Invoke(new GetComboBoxSelectedIndexDelegate(GetComboBoxSelectedIndex), new object[] {cb});
                }

                return cb.SelectedIndex;
            }

    private delegate void ButtonPerformClickDelegate(ref Button b);

    private void ButtonPerformClick(ref Button b)
            {
                if (InvokeRequired)
                {
                    Invoke(new ButtonPerformClickDelegate(ButtonPerformClick), new object[] {b});
                }
                else
                {
                    b.PerformClick();
                }
            }

    private delegate void UpdateCountdownProgressBarDelegate(ref ProgressBar pb, int delay, int elapsed);

    private void UpdateCountdownProgressBar(ref ProgressBar pb, int delay, int elapsed)
            {
                if (InvokeRequired)
                {
                    Invoke(new UpdateCountdownProgressBarDelegate(UpdateCountdownProgressBar), new object[] {pb, delay, elapsed});
                }
                else
                {
                    pb.Minimum = 0;
                    pb.Maximum = delay;

                    if (elapsed < delay)
                    {
                        pb.Value = delay - elapsed;
                    }
                    else
                    {
                        pb.Value = 0;
                    }
                }
            }

    private delegate bool GetCheckBoxCheckedDelegate(ref CheckBox cb);

    private bool GetCheckBoxChecked(ref CheckBox cb)
            {
                if (InvokeRequired)
                {
                    return Convert.ToBoolean(Invoke(new GetCheckBoxCheckedDelegate(GetCheckBoxChecked), new object[] {cb}));
                }

                return cb.Checked;
            }

    private delegate void AddComboBoxItemDelegate(ref ComboBox cb, string item);

    private void AddComboBoxItem(ref ComboBox cb, string item)
            {
                if (InvokeRequired)
                {
                    Invoke(new AddComboBoxItemDelegate(AddComboBoxItem), new object[] {cb, item});
                }
                else
                {
                    cb.Items.Add(item);
                }
            }

  • 相关阅读:
    typedef的用法
    重定向在网络编程中的理解
    简答的理解C语言中的各种类型函数
    栈、堆、静态存储区
    标识符起作用范围----作用域、连接类型、存储期
    main函数的argc和argv
    基本数据类型
    数组与指针
    第一章 CLR的执行模型
    Revit 二次开发 沿弧形路径创建拉伸屋顶
  • 原文地址:https://www.cnblogs.com/zeroone/p/2681153.html
Copyright © 2011-2022 走看看