private void toolStripButtonConnect_Click(object sender, EventArgs e)
{
//...
timerForDB = new System.Threading.Timer(OnDisplay, null, 0, 3000);
//...
}
void OnDisplay(object obj)
{
LedDisplay(m_Result[counter][0], m_Result[counter][1]);
Application.DoEvents();
if (counter == m_Result.Count - 1)
{
counter = 0;
}
else
{
counter++;
}
}
public void LedDisplay(string PlateNumber, string strStatus)
{
string bmpfile = string.Format("{0}\\ledplate.bmp", BinDirectory);
//...用于生成不同内容的bmpfile
LedShow(bmpfile, "192.168.1.176");
}
[DllImport("LedShow.dll", EntryPoint = "LedShow")]
private static extern void LedShow(string lp_bmppath, string lp_ipAddr);
在关闭主窗体时就会出现错误我的理解就是关闭的时候子线程还在执行任务并且需要MainForm,而实际上这时候主线程已经释放掉了,所以就出现了截图中的错误.曾经尝试过在OnDisplay方法中做一个判断,if(this.Handle != null) LedDisplay(m_Result[counter][0], m_Result[counter][1]);但是这根本不管用,还是报一样的错误.希望大家帮帮忙,看看怎么解决这个问题比较好.
解决方案 »
- winform的CheckedListBox 如何触发滚动事件
- 在多线程学习中遇到的问题,球高手指点
- 如何更改combobox中item的间距?
- C#.net中listview控件中checkbox的用法
- xslt强人请进,关于xsl:sort lang="$language"
- 问个简单的用户空件的问题
- web services发布在IIS中,需要机器安装.Ner framework 2.0吗?
- SerialPort使用BaseStream异步读取数据问题
- 问两个有关控件的问题
- 关于数据库的
- 百度知道post 参数utdata算法
- C#,OleDb方式读取csv文件,读不到第一行;HDR是没用的!!!
#4 这个也尝试过了,并不能解决问题/