工作的内容很简单,界面上一个按钮,点击后在线程里执行了一个死循环,循环体内调用了com的方法a,a方法什么都没做,。观察该程序的内存使用情况,发现内存上涨是间歇性的,每次上涨8-16k左右,
1 private void btnTest_Click(object sender, EventArgs e) 2 { 3 Thread t = new Thread(sendmsg); 4 t.Start(); 5 } 6 7 private void sendmsg() 8 { 9 try 10 { 11 byte[] csByte = { 0x5a, 0xa5, 0x23, 0x45, 0x65, 0xfe, 0x00, 0x03, 0x01, 0x01, 0x01, 0x02, 0x03, 0x4a, 0xf3 }; 12 short comType = 1; 13 short length = 15; 14 while (true) 15 { 16 //ocx.SendComTransmitMsgEx("00000000000000000001", comType, "123456789012345", length); 17 ocx.Test(); 18 19 Thread.Sleep(1000); 20 } 21 } 22 catch (Exception ex) 23 { 24 MessageBox.Show("循环透传异常:"+ex.ToString()); 25 } 26 }
不知道是什么原因导致上涨了。
原因很简单: Thread.Sleep(1000);