在线程中访问控件(datagridview)提示:不支援指定的路径格式
开始运行线程的时候还不会有问题,一旦条件成立就报错这个控件在其它线程中也有访问到,但不会报错.delegate void CheckTestStatusCallBack();
void CheckTestStatus()
{
if (this.ClientList.InvokeRequired)
{
try
{
CheckTestStatusCallBack ctscb = new CheckTestStatusCallBack(CheckTestStatus);
this.Invoke(ctscb, null); //这里有异常
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
else
{
for (int i = 0; i < this.ClientList.Rows.Count; i++)
{
if (this.ClientList["當前狀態", i].Value.ToString().ToUpper().Trim() == "PASS" || this.ClientList["當前狀態", i].Value.ToString().ToUpper().Trim() == "FAIL") continue;
//========== 如果"起始時間"+"測試時間"小於當前時間並且"結束時間"+"等待時間"大於當前時間
if(Convert.ToDateTime(this.ClientList["起始時間", i].Value).AddMinutes(Convert.ToDouble(this.ClientList["測試時間",i].Value)) < DateTime.Now && Convert.ToDateTime(this.ClientList["結束時間", i].Value).AddSeconds(Convert.ToDouble(this.m_OffLine.Value)) > DateTime.Now)
{
CreateTestLog(this.ClientList["主板條碼", i].Value.ToString(), this.ClientList["測試機臺", i].Value.ToString(), this.ClientList["測試工號", i].Value.ToString(), this.ClientList["起始時間", i].Value.ToString(), this.ClientList["結束時間", i].Value.ToString(), "P");
this.ClientList["當前狀態", i].Value = "pass";
continue;
} //========== 如果狀態等於"Online"
if (this.ClientList["當前狀態",i].Value.ToString().Trim() == "Online")
{
//=========== 如果終止時間+等待時間小於當前時間
if (Convert.ToDateTime(this.ClientList["結束時間", i].Value).AddSeconds(Convert.ToDouble(this.m_OnLine.Value)) < DateTime.Now)
{
this.ClientList["起始時間", i].Value = Convert.ToDateTime(this.ClientList["起始時間",i].Value).AddSeconds(Convert.ToDouble(this.m_OnLine.Value));
this.ClientList["結束時間", i].Value = Convert.ToDateTime(this.ClientList["結束時間",i].Value).AddSeconds(Convert.ToDouble(this.m_OnLine.Value));
continue;
}
} //=========== 如果狀態等於"Offline"
if (this.ClientList["當前狀態", i].Value.ToString().Trim() == "Offline")
{
//=========== 如果終止時間+等待時間小於當前時間
if (Convert.ToDateTime(this.ClientList["結束時間", i].Value).AddSeconds(Convert.ToDouble(this.m_OffLine.Value)) < DateTime.Now)
{
CreateTestLog(this.ClientList["主板條碼", i].Value.ToString(), this.ClientList["測試機臺", i].Value.ToString(), this.ClientList["測試工號", i].Value.ToString(), this.ClientList["起始時間", i].Value.ToString(), this.ClientList["結束時間", i].Value.ToString(), "F");
this.ClientList["當前狀態", i].Value = "fail";
}
}
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货