0
我需要从telnet连接读取异步数据。而远程库给出一个处理程序,所以我设置这种方式:C#telnet应用程序的单线程事件处理程序
public PortechGSMBox(string ipaddress, int port, String user, String password, int modulenum = 1)
{
telnet = new TelnetWrapper();
telnet.DataAvailable += new DataAvailableEventHandler(DataReceivedHandler);
telnet.Disconnected += new DisconnectedEventHandler(DisconnectHandler);
telnet.Connect(ipaddress, port);
Login(user, password, modulenum);
}
private void DataReceivedHandler(object src, DataAvailableEventArgs args)
{
output+=args.data
}
我看到接收到的数据不正确的顺序收到,也许是因为事件来自多个线程。所以如果服务器发送“123456789”,我可以收到“56781234”。 我试图在DataHandler之前添加[MethodImpl(MethodImplOptions.Synchronized)],但不起作用。 你有什么建议?