我写了一个类,它应该提供与 NodeJS 服务器的基本交互。此类还包括 TcpClient 实例并异步工作(例如 BeginRead、BeginWrite 等方法),因此许多函数将回调(使用 lambda expr. 的匿名函数)作为参数。问题在这种情况下开始(我试图说明类似于原始代码的和平)。
this._nodeJS.Send("DATA_TO_SEND", (Response) => {
Console.WriteLine(Response);
// Section1
this._nodeJS.Send("ANOTHER_DATA", (Response1) => {
Console.WriteLine(Response1);
});
});
问题出现在Section1中。当它被注释掉时,程序按预期运行。收到写入控制台的响应。当它没有被注释掉时,它开始表现得很奇怪。在 Section1 中写入 Console 不起作用(在许多情况下),重要的是,本节中 Console.WriteLine 下面的代码不会执行,“线程”只是在命令之前停止。我尝试一步步调试它,Section1 中的变量设置正确,当我执行下一个命令时,调试就停止了。这种方法有什么问题吗?有什么我需要注意的吗?
为了更好的想象,这里是我的例子。我连接到 NodeJS 服务器,完成后,我发送一个请求并等待包含数据的响应,这些数据经过处理并在下一个请求(第 1 节)中再次发送到 NodeJS 服务器。NodeJS 给了我最终的回应和程序的工作......感谢您的任何建议!