等待方法等待会话进入允许输入或屏幕修改的状态。
语法
void Wait(
uint howLong,
int waitForUpdate
)
参数
| 参数 | 值 |
|---|---|
howLong |
线程愿意放弃用于启用输入或更新屏幕的时间段,以 0.5 秒为单位。 0xffffffff指示线程应无限期等待。 |
waitForUpdate |
如果为 false,则当会话处于允许输入状态时,此方法将立即返回。 如果会话当前处于允许输入状态,则会话将立即返回。 有关详细信息,请参见“备注”部分。 |
返回值
| 值 | 说明 |
|---|---|
| S_OK | 会话可用于输入。 |
| C3270_S_SIZECHANGED | 会话可用于输入,但在等待调用期间修改了屏幕大小。 你应该使用 gall getScreenSize 来确定新的屏幕大小。 |
| C3270_E_SESSIONBUSY | 3270 会话仍然繁忙,但 howLong 指定的超时期限已过期。 在再次调用 wait 之前,应执行任何必要的处理。 |
| C3270_E_SESSSIONLOCKED | 由于本地锁定条件,3270 会话已锁定。 应检查 OIA 缓冲区以确定错误原因。 在再次调用等待或执行任何其他恢复操作之前,还可以发送 RESET 键击来解锁键盘。 |
| C3270_E_SESSIONFAILURE | 3270 会话失败。 等待正在进行时,PLU_SLU或 SSCP 会话已停用。 应检查会话的 OIA 中的会话状态,并采取适当的恢复操作。 |
| C3270_E_SYSERROR | 方法由于内部错误而失败。 |
注解
调用 wait 允许会话在应用程序处于活动状态、连接到主机并等待数据时处理来自主机的消息。
当主机解锁键盘并通过单独的操作发送屏幕更新时,应将 waitForUpdate 设置为 true。 具体而言,应在 SSCP 会话上执行此操作,该会话在收到来自客户端数据的 SNA 响应时启用输入。 回复数据在后续消息上缩进。