我有一个执行两个方法的else循环,
static private void HandleClientStateCB(string clientName,
SPD.SPD_clientStateType state, object pb){
//IF()
else {
HandlePCAEvent(myDevice, SpoServer.PCA.Event.DeviceInactive, "");
HandlePCAEvent(myDevice, SpoServer.PCA.Event.DeviceDisconnect, "");
}
}
我的要求是什么时候客户端断开连接时我需要将版本设置为null。现有条件就像这样
static private void HandleClientEventCB(SPD.SPD_eventType type,
SPD.SPD_event this_event, object passback){
//------------------
string agentVersion = "0.0.0.0";
if (this_event.variableData.Length >= 6 ){
agentVersion = this_event.variableData[5].atr_value;
}
}
所以我做的是我宣布一个布尔变量测试private static bool test = false;
然后我在else循环中使用
static private void HandleClientStateCB(string clientName,
SPD.SPD_clientStateType state, object pb){
//IF()
else {
HandlePCAEvent(myDevice, SpoServer.PCA.Event.DeviceInactive, "");
HandlePCAEvent(myDevice, SpoServer.PCA.Event.DeviceDisconnect, "");
test = true;
}
}
static private void HandleClientEventCB(SPD.SPD_eventType type,
SPD.SPD_event this_event, object passback){
//-------------------------------
string agentVersion = "0.0.0.0";
if (this_event.variableData.Length >= 6 && test==false ){
agentVersion = this_event.variableData[5].atr_value;
}
}
但是这个逻辑不起作用,任何机构都可以建议任何其他逻辑,以便我的版本应该是空的断开时间
答案 0 :(得分:1)
设置test = true;
时,如何检查设备是否已断开连接?如果HandleClientEventCB
函数中有该条件,请再次检查。否则,您需要将true/false
传递给HandleClientEventCB
以了解设备是否已断开连接。
另外,您不能对DeviceActive
,DeviceInactive
,DeviceConnect
和DeviceDisconnect
使用不同的事件。如果是,那么您可以知道是否要求HandleClientEventCB
断开连接。