1
当我尝试将一个字节数组的一部分分配给两个单独的字节数组,并将它们作为单独的串行端口上的串行命令发出时,我有一些奇怪的行为。我已经打破了代码,以便能够更轻松地通过它;这个问题很容易重复,但对我来说毫无意义。字节分配不一致
byte[] cmd1 = CLEAR_COMMAND;
byte[] cmd2 = CLEAR_COMMAND;
byte[] parameterBytesCmd1 = IntToByteArray(parameter1);
cmd1[3] = parameterBytesCmd1 [0];
cmd1[4] = parameterBytesCmd1 [1];
Thread.Sleep (100);
byte[] parameterBytesCmd2 = IntToByteArray(parameter2);
cmd2[3] = parameterBytesCmd2 [0];
cmd2[4] = parameterBytesCmd2 [1];
你可以看到我走了几个整数参数,将它们转换成字节数组,然后将它们放入特定位置在我建立的命令模板。如果我在没有睡眠至少100ms的情况下进行此操作,则cmd1
和cmd2
的内容每次都会相同 - [3]
和[4]
对于cmd1
和cmd2
都将包含来自parameterBytesCmd1[0]
和[1]
的数据。
FWIW,这发生在一个单独的线程。