当前位置:编程学习 > C#/ASP.NET >>

关闭窗口时抛出InvailidOperationException错误

在cls_IntegrationService中开一个线程获取外部数据,每次获取到数据后Form1中的label1会显示该值,Form1中相应的代码如下:

        private cls_IntegrationService IntegrationService;
        public frm_Powermeter(cls_IntegrationService IS)
        {
            InitializeComponent();
            IntegrationService = IS;
            IntegrationService.DataChanged_Power += new DataChangedHandle(IntegrationService_DataChanged_Power);
        }

        private void IntegrationService_DataChanged_Power(object sender, object data)
        {
            SetPower(((decimal)data).ToString("F2"));
        }

        private void SetPower(string Power)
        {
            if (label1.InvokeRequired)
            {
                InvokeCallback msgCallback = new InvokeCallback(SetPower);
                if (label1.IsHandleCreated)
                {
                    label1.Invoke(msgCallback, new object[] { Power });
                }
            }
            else
            {
                label1.Text = Power;
            }
        }


当关闭这个窗口时,每次会在 label1.Invoke(msgCallback, new object[] { Power }); 抛出异常,提示“在创建窗口句柄之前,不能在控件上调用Invoke或InvokeAsync”,这个问题怎么解决呢?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,