1
我试图从串口读取数据,在某些控件中显示数据,并将数据插入数据库。使用线程和串行端口和数据库调用
我已经将它插入到数据库中并且正确读取,但是,由于我添加了数据库更改,因此它不再写入文本框。我怎样才能同时完成这三项任务。以下是我的一些代码。
void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string force = "";
force = serialPort1.ReadExisting().Split('.')[0].ToString();
Invoke(new Action(() => richTextBox1.AppendText(serialPort1.ReadExisting())));
string queryString = "Insert into Table....";
OdbcConnection connection = new OdbcConnection();
connection.ConnectionString = Settings.Default.STIMConnection;
OdbcCommand command = new OdbcCommand(queryString, connection);
command.CommandType = CommandType.Text;
try
{
connection.Open();
command.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
connection.Close();
connection.Dispose();
}
}
在此先感谢您。
啊,谢谢。这正是我的问题所在。 – Eric
我是新来的线程工作。我应该什么时候调用新操作以及多久? – Eric
@Eric:很大程度上取决于你的应用程序以及你正在尝试做什么 - 最主要的是理解在哪个线程上以及什么时候“Action”被执行 - 以及何时依赖变量在这种情况下闭包如何工作。 – BrokenGlass