C# 除非进行调试,否则C代码会出错

C# 除非进行调试,否则C代码会出错,c#,serial-port,serial-communication,C#,Serial Port,Serial Communication,所以我一直在做我的C#项目,需要做一些串行通信。一切都很好,直到我有一个真正的。。。奇怪的问题 所以现在我收到一个串行代码,它存储在myString中。下面我得到的问题是,如果我没有调试代码,那么整个if语句只是。。。被忽视。然而,当我使用断点时,它会做所有正确的事情。此处除(*l)部分外的所有内容均适用于参考 (代码的其余部分因不必要的部分而被删除。如果你们认为有帮助,我可以附加更多。) myString的示例: *c*96,84,75*e**d*25.5*e**p*0*e**l*0*e*

所以我一直在做我的C#项目,需要做一些串行通信。一切都很好,直到我有一个真正的。。。奇怪的问题

所以现在我收到一个串行代码,它存储在myString中。下面我得到的问题是,如果我没有调试代码,那么整个if语句只是。。。被忽视。然而,当我使用断点时,它会做所有正确的事情。此处除(*l)部分外的所有内容均适用于参考 (代码的其余部分因不必要的部分而被删除。如果你们认为有帮助,我可以附加更多。)

myString的示例:

*c*96,84,75*e**d*25.5*e**p*0*e**l*0*e*
因此,它将被解读为: 颜色:96、84、75(恰巧如此!) 距离:25.5(正好!) prox:0(正确发生!) 限制:0(未发生…)

请注意,发送和接收数据的顺序不会改变哪一个(限制)不起作用,除非我根据以下中的:类信息设置断点

读取数据时,在辅助线程上引发DataReceived事件 从SerialPort对象接收。因为此事件是在 次线程,而不是主线程,正在尝试修改某些 主线程中的元素(如UI元素)可能引发 线程异常。如果需要修改主视图中的图元 窗体或控件,使用Invoke将更改请求发回 在正确的螺纹上工作

您应使用以下表格:

this.Invoke(this.AddDataMethod, new Object[] { The_Received_String });
                    }

这是一种多线程问题。我可以通过添加用于接收字符串的代码来解决它。您是否正在使用ReceiveData事件?请输入System.Diagnostics.Trace.Trace信息或登录每个
,如果
s,请在版本中运行代码(即不是从VS)。看看它的行为是否正确。在发行版上运行它一点也不方便,因为我需要调试很多。另外两个我该怎么做?详细信息将不胜感激。所以我只需将“.Parent”添加到该部分?对不起,我复制并粘贴了我的代码。我有一个通用的串行类。奇怪的是,即使我更改了IF语句的顺序,它也只跳过那个特定的IF。无论如何,谢谢你的努力!
this.Invoke(this.AddDataMethod, new Object[] { The_Received_String });
                    }