• 线程间操作无效: 从不是创建控件“labMessage”的线程访问它。


    解决方法:
    1、在窗体加载时加上这一句

    private void FormDate_Load(object sender, EventArgs e)
    {
        Control.CheckForIllegalCrossThreadCalls = false;
    }

    2、利用委托

    //利用委托解决 "线程间操作无效: 从不是创建控件“LabMessage”的线程访问它。"
    private delegate void SetTextCallback(string text);
    //在给Label.text赋值的地方调用以下方法即可
    private void SetText(string text)
    {
        // InvokeRequired需要比较调用线程ID和创建线程ID
        // 如果它们不相同则返回true
        if (this.LabMessage.InvokeRequired)
        {
            SetTextCallback d = new SetTextCallback(SetText);
            this.Invoke(d, new object[] { text });
        }
        else
        {
            this.LabMessage.Text = text;
        }
    }
    //用于关闭等待窗体
    private void closeWattingForm()
    {
        if (LabMessage != null)
        {
             SetText("再见!");
        }
    }
  • 相关阅读:
    购物英语词汇
    生活学习英语词汇
    银行英语词汇
    烹饪英语词汇
    旅游英语词汇
    饮食英语词汇
    书英语词汇
    王元编辑口语资料中国传统之节日
    DataSet在WCF中怎么办?
    Python生成Wav格式文件
  • 原文地址:https://www.cnblogs.com/haibing0107/p/6122982.html
Copyright © 2020-2023  润新知