我正在尝试实现一个系统,以便使用另一个线程不断测试richTextBox上的结果是否为空。
这里是完整的上下文,我从秤获取输入以显示在richTextBox上。如果读数稳定,我会将结果添加到数组数据库中。
以前,我是同步工作的。但是我需要同时运行两次该程序。可以在同步的基础上很好地工作。
void GetStableReading(SerialPort VarPort)
{
richSerialOut.Text = VarPort.ReadExisting();
richSerialOut.Update();
while (string.IsNullOrWhiteSpace(richSerialOut.Text))
{
richSerialOut.Text = VarPort.ReadExisting();
richSerialOut.Update();
if (richSerialOut.Text.Contains("ES") || richSerialOut.Lines.Count() > 3)
{
richSerialOut.Text = VarPort.ReadExisting();
richSerialOut.Update();
}
}
database.Add(richSerialOut.Text);
Thread.Sleep(1000);
}
但是,我无法使用Invoke方法获得布尔结果,因此我尝试将结果放入字符串中并测试是否适合,但我无法做到这一点。
void GetStableReading(SerialPort VarPort)
{
ScalePort.DiscardOutBuffer();
object[] StabilityCommand = { "", VarPort.ReadExisting() };
this.Invoke(d, StabilityCommand[0]);
while (Scale_weight == "SI\r\n" || Scale_weight == "")
{
//richSerialOut.Text = VarPort.ReadExisting();
ScalePort.DiscardOutBuffer();
Scale_weight = "";
Thread.Sleep(1000);
ScalePort.Write("S" + "\n");
this.Invoke(d, StabilityCommand[1]);
}
database.Add(Scale_weight);
Thread.Sleep(1000);
}
void SetText(string message)
{
richOut.Text = message;
Scale_weight = message;
richOut.Update();
}
有人有更直观的方法吗?
我需要通过串行端口发送一个字符串“ S \ n”。 所需的字符串结果将在“ S X.XXX Kg \ n”中,其中S定义稳定的读数,而X.XXX是砝码。