gpt4 book ai didi

java - 可以删除 zkoss Events.echoEvent 吗?

转载 作者:行者123 更新时间:2023-11-29 05:50:31 26 4
gpt4 key购买 nike

我正在尝试执行以下操作:

  1. 发送长时间执行的请求(我这里使用Events.echoEvent)
  2. 显示带有“取消”按钮的模态对话框(等待...)
  3. 如果用户按下“取消”,对话框将被隐藏,事件方法不应被执行。
  4. 如果用户不按下按钮并等待。调用事件方法并关闭等待对话框

我该怎么做?

最佳答案

ZK 通常在单个线程中为服务器上的单个请求完成所有工作。 Events.echoEvent 让您可以通过完成请求来解决这个问题,然后在全新的请求(和线程)中立即回调到服务器。用户与客户端的交互会触发一个新请求,因此这也将是一个新线程。

因此,在上面的示例中,您将使用三个线程:

  1. 对于调用echoEvent的原始请求
  2. 对于 echoEvent 创建的新请求
  3. 针对用户点击“取消”时创建的请求

显然,当最后两个被调用时,第一个早已不复存在,但这是您需要考虑的,以解决您的问题。

您会在 StackOverflow 上找到大量关于让两个线程交互的讨论,或者更具体地说,让一个线程中断另一个线程。

我会推荐给你 'How to stop threads in Java?'其中接受的答案倾向于共享某种“停止标志”而不是直接调用线程上的 interrupt

在您的场景中,长时间运行的进程会在定期检查停止标志(一个简单的 boolean)的同时正常运行。当用户点击“取消”时,您只需将标志翻转为 true

关于java - 可以删除 zkoss Events.echoEvent 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14056042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com