我正在为嵌入式设备开发WIFI引导加载程序。它工作正常,但现在我想提高速度。我有一个C#客户端和一个Android客户端,设备充当服务器。嵌入式设备相当慢,因此当设备写入程序存储器时,客户端必须在数据记录之间休眠。这是一个奇怪的部分:Windows C#客户端所需的睡眠时间为300毫秒,而Android时间为800毫秒。任何较少的等待都会导致服务器发送错误。这导致在C#中运行8分钟,在Android中运行21分钟。为什么是这样?
这是C#中的循环:
for (int line = 0; line < lines.Count; line++) {
if (lines[line].StartsWith(";")) break;
byte[] sbytes = Encoding.ASCII.GetBytes(lines[line]);
gStream.Write(sbytes, 0, sbytes.Length);
textBoxTerminal.AppendText(lines[line]);
textBoxTerminal.AppendText("\n");
Application.DoEvents();
wait(300);
if (gStream.DataAvailable) break;
}
这是Android Java:
while((data = br.readLine()) != null) {
if (data.startsWith(";")) break;
dataOutputStream.writeBytes(data + "\r");
lines++;
mData = lines + " Lines of " + tlines + " sent";
mHandler.post(mShowData);
dataOutputStream.flush();
Thread.sleep(800);
if (inputStream.available() > 0) break;
}