这里有一个定时器:
private void timer1_Tick(object sender, EventArgs e)
{
JT.MonitorDataSetTableAdapters.TbStationTableAdapter ds = new JT.MonitorDataSetTableAdapters.TbStationTableAdapter();
JT.MonitorDataSet.TbStationDataTable dt = ds.GetDataStationAdd(strZone);
for (int i = 0; i < dt.Rows.Count; i++)
{ _strStationAdd = dt.Rows[i]["strAddress"].ToString();
Thread.Sleep(6000);
string[] SendData = new string[12];
SendData[0] = "68";
SendData[1] = _strStationAdd.Substring(0, 2);
SendData[2] = _strStationAdd.Substring(2, 2);
SendData[3] = _strStationAdd.Substring(4, 2);
SendData[4] = _strStationAdd.Substring(6, 2);
SendData[5] = _strStationAdd.Substring(8, 2);
SendData[6] = _strStationAdd.Substring(10, 2);
SendData[7] = "68";
SendData[8] = "1C";
SendData[9] = "00";
SendData[10] = MeGetCrc(SendData, 10);//计算校验码CRC
SendData[11] = "16"; byte[] send = new byte[12];
send[0] = Convert.ToByte(SendData[0], 16);
send[1] = Convert.ToByte(SendData[1], 16);
send[2] = Convert.ToByte(SendData[2], 16);
send[3] = Convert.ToByte(SendData[3], 16);
send[4] = Convert.ToByte(SendData[4], 16);
send[5] = Convert.ToByte(SendData[5], 16);
send[6] = Convert.ToByte(SendData[6], 16);
send[7] = Convert.ToByte(SendData[7], 16);
send[8] = Convert.ToByte(SendData[8], 16);
send[9] = Convert.ToByte(SendData[9], 16);
send[10] = Convert.ToByte(SendData[10], 16);
send[11] = Convert.ToByte(SendData[11], 16);
_com.Write(send, 0, 12);
}
}
在窗体初始化的时候开始了一个线程:
Thread p = new Thread(jt);
p.Start();
请问如何实现这样的效果:定时器里面的每个for语句循环的时候休眠(也就是这个语句 Thread.Sleep(6000))而此时不影响P这个线程的运行
private void timer1_Tick(object sender, EventArgs e)
{
JT.MonitorDataSetTableAdapters.TbStationTableAdapter ds = new JT.MonitorDataSetTableAdapters.TbStationTableAdapter();
JT.MonitorDataSet.TbStationDataTable dt = ds.GetDataStationAdd(strZone);
for (int i = 0; i < dt.Rows.Count; i++)
{ _strStationAdd = dt.Rows[i]["strAddress"].ToString();
Thread.Sleep(6000);
string[] SendData = new string[12];
SendData[0] = "68";
SendData[1] = _strStationAdd.Substring(0, 2);
SendData[2] = _strStationAdd.Substring(2, 2);
SendData[3] = _strStationAdd.Substring(4, 2);
SendData[4] = _strStationAdd.Substring(6, 2);
SendData[5] = _strStationAdd.Substring(8, 2);
SendData[6] = _strStationAdd.Substring(10, 2);
SendData[7] = "68";
SendData[8] = "1C";
SendData[9] = "00";
SendData[10] = MeGetCrc(SendData, 10);//计算校验码CRC
SendData[11] = "16"; byte[] send = new byte[12];
send[0] = Convert.ToByte(SendData[0], 16);
send[1] = Convert.ToByte(SendData[1], 16);
send[2] = Convert.ToByte(SendData[2], 16);
send[3] = Convert.ToByte(SendData[3], 16);
send[4] = Convert.ToByte(SendData[4], 16);
send[5] = Convert.ToByte(SendData[5], 16);
send[6] = Convert.ToByte(SendData[6], 16);
send[7] = Convert.ToByte(SendData[7], 16);
send[8] = Convert.ToByte(SendData[8], 16);
send[9] = Convert.ToByte(SendData[9], 16);
send[10] = Convert.ToByte(SendData[10], 16);
send[11] = Convert.ToByte(SendData[11], 16);
_com.Write(send, 0, 12);
}
}
在窗体初始化的时候开始了一个线程:
Thread p = new Thread(jt);
p.Start();
请问如何实现这样的效果:定时器里面的每个for语句循环的时候休眠(也就是这个语句 Thread.Sleep(6000))而此时不影响P这个线程的运行
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货