1
シリアルポートからデータを読み込み、何らかのコントロールにデータを表示し、そのデータをDBに挿入しようとしています。スレッドとシリアルポートとDBコールを操作する
DBに挿入して正しく読み込んでいますが、DBの変更を追加してからもうテキストボックスに書き込んでいません。どのようにしてこれらの3つのタスクを同時に達成できますか?以下は私のコードの一部です。
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