C#为啥总是先执行串口的程序
C#为什么总是先执行串口的程序?
情况是这样的,我编写了一段代码,实现的功能顺序是--显示datagridview--打开串口--发送命令给模块(命令送达的话模块会闪一下)
就这么简单的程序,为什么总是模块在闪,datagridview总是很久才显示,而且显示不完全,类似那种页面卡住.上代码...各位大神帮忙看看.
情况是这样的,我编写了一段代码,实现的功能顺序是--显示datagridview--打开串口--发送命令给模块(命令送达的话模块会闪一下)
就这么简单的程序,为什么总是模块在闪,datagridview总是很久才显示,而且显示不完全,类似那种页面卡住.上代码...各位大神帮忙看看.
biaoji = 0;
dataGridView1.Visible = true;
jieshukaoqin.Visible = true;
string oleDBString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source = F:\visual studio 2010\\Projects\\Graduation Project\\g_pData.mdb";
OleDbConnection conn = new OleDbConnection(oleDBString);
conn.Open();
//初始化出勤
string sql = "update Student set SAttendance='" + "缺勤" +"'";//批量修改SAttendance值
OleDbCommand ccmd = new OleDbCommand(sql, conn);
if (ccmd.ExecuteNonQuery() != 0)
{
}
//显示学生信息
string ssql = "select * from Student";
OleDbDataAdapter ad = new OleDbDataAdapter(ssql, conn);
DataTable dt = new DataTable();
ad.Fill(dt);
dataGridView1.DataSource = dt.DefaultView;
/******这是刷新DATAGRIDVIEW语句********/
/*dataGridView1.Refresh();
dataGridView1.DataSource = dt.DefaultView;*/
//初始化串口
string str;
int count = 0;
sp = new SerialPort();
sp.PortName = "COM11";
sp.BaudRate = 57600;
sp.StopBits = StopBits.One;
sp.Parity = Parity.None;
sp.DataBits = 8;
sp.Open();
byte[] buffer = new byte[12];//用于保存普通应答包
byte[] bbuffer = new byte[16];//用于保存搜索返回的应答包
//录入指纹图像
do
{
sp.DiscardInBuffer();//清除缓存数据
sp.Write(luru, 0, 12);//发送录入指令
Thread.Sleep(1000);//延时1秒
count = sp.BytesToRead;//读应答包数据
sp.Read(buffer, 0, count);//将数据存入buffer
Thread.Sleep(1000);//延时1秒