关闭窗口时抛出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#