问题标签 [suspend]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2065 浏览

java - 在 Servlet 3.0 API 中继续或暂停和恢复以与客户端通信?

我们正在将 Swing 两层应用程序迁移到 Web 应用程序(tomcat、Spring MVC、extJS,如果有任何区别的话)。

我们在应用程序中找到了这样的代码(简化的 Javaesc 伪代码)。

即在一些处理过程中,开始了与用户的一些交互。显然,我不能直接使用 servlet 来做到这一点。

可以很好地处理这个问题的一件事是延续。所以我检查了我是否可以使用这些,并惊讶于实际上有支持这种东西的库:Java 中的延续

在检查该问题中提到的库及其答案时,我遇到了这个声明

一旦规范最终确定,延续将被标准 Servlet-3.0 可暂停请求所取代。Jetty-7 的早期版本现已推出,可实现建议的标准挂起/恢复 API

但我找不到如何使用 Servlet 3.0 API 执行上述操作的示例

所以问题是:

  1. 是否可以使用 Servlet-3.0 API 完成上述操作,而无需将上面的代码完全重构为两个或多个单独的操作

  2. 如果上面的答案是肯定的:如何?是否有针对此或类似用例的完整示例?

  3. 我应该使用 Continuations 还是 Servlet API?或者如果不能直接回答这个决定取决于什么条件?

0 投票
1 回答
110 浏览

windows - 如果在特定地址写入,则暂停进程

在 Windows(最好是 XP)上,通常可以在进程写入特定地址(在它的虚拟地址空间中)时挂起它吗?

由于加载的 DLL 执行写入操作而不是进程本身的 (PE) 映像中的代码,因此问题变得复杂。

0 投票
3 回答
302 浏览

java - 如何使用暂停然后恢复或替代方法在线程之间同步共享数据

我正在编写一个游戏,其中一个线程 - GameThread - 永远循环,更新我所有的精灵,渲染它们,然后在再次执行之前休眠一段时间。我还有一个定制的事件处理程序来处理按键等。

在大多数情况下,这一切都很好。但是,如果在 GameThread 渲染时引发事件,我会遇到问题。在极少数情况下,处理事件的处理程序可能会对需要渲染的内容进行并发更改,从而影响 GameThread 渲染的结果。

为了避免这种情况,我希望事件处理程序立即暂停 GameThread,处理事件,然后恢复 GameThread。

  1. suspend()/方法适合我的resume()需要,但它们已被弃用。但是,就我而言,由于死锁的可能性很小,无论如何使用它们是否安全?

  2. 如果不是,我还有哪些其他替代方案不会产生大量开销?

我看到了通过在要暂停的线程中设置标志来请求线程暂停的建议。然而,就我而言,我认为这不是一个可行的选择,因为 GameThread 循环在循环迭代期间可能需要一段时间。在我完成循环之前,我将无法检查标志,到那时为时已晚。

我需要立即暂停,否则用户会注意到事件处理的延迟。

0 投票
4 回答
7327 浏览

c# - 立即终止无循环线程,无需 Abort 或 Suspend

我正在实现一个协议库。这里是一个简化的描述。

main 函数中的主线程将始终检查网络流(在 tcpclient 中)是否有一些数据可用。让我们说响应是接收到的消息,线程是一个正在运行的线程。

到目前为止一切顺利,实际上在 while 循环中有更多消息要进入,并且还有一个状态机用于处理不同类型的传入消息,但这应该足够了。(还有不仅仅是函数“function”和“function2”)。

因此,无论如何,在这个应用程序中函数内部的外观并不清楚,因为协议对程序员是隐藏的,并且意味着是一个库。这意味着协议将根据程序在协议中的状态将一些程序员定义的函数作为线程启动。

因此,如果随后收到特殊响应(例如 callAnotherFunction 消息),我想突然终止一个线程(这里称为“线程”),假设在 100 毫秒内。但我不知道它是否在循环内执行,以及在它终止之前需要多少处理。

如何在不弃用 Suspend 或 Exceptionthrowing Abort 功能的情况下停止这些线程?(请注意,我不能强制函数的程序员捕获 ThreadAbortException。)

还是我需要不同的程序架构?(顺便说一句,我决定将循环放在 receiveMessage 中,用于将网络流轮询到主函数中,因为任何时候都会出现消息)。

0 投票
1 回答
5541 浏览

java - 如何在android中暂停和恢复线程?

我刚刚注意到 android 线程中的挂起和恢复已被弃用。解决此问题的方法是什么,或者如何在android中暂停和恢复线程?

0 投票
3 回答
3957 浏览

c# - 替代 Thread.Suspend() 方法

Thread.Suspend()如您所知,方法已过时。当按钮单击事件发生时,我想立即暂停线程。我使用了 Thread.Suspend() 并且效果很好,但是每个人都建议使用 Thread.Suspend() 方法不是暂停任务的好方法。我使用了一个标志来暂停任务,但是每次按钮单击事件发生时,我都必须等待退出任务。我使用 Thread.IsAlive 标志来等待线程退出,但这种方法会冻结表单。

我怎样才能立即暂停线程?

0 投票
1 回答
3183 浏览

sleep - 睡眠(挂起)和恢复 Windows 窗体在工作线程而不是主线程上启动程序

我正在处理的 Windows 窗体订阅Microsoft.Win32.SystemEvents.PowerModeChanged并在Suspend其上运行Close()窗体上的方法。在Resume它上面运行Run()函数,就像在初始加载时一样。问题是,当计算机从睡眠模式唤醒时,PowerModeChanged 事件在名为“.Net SystemEvents”的工作线程上触发,当Run()被调用时,它会在该工作线程而不是主线程上重新创建表单。

这个表单是我从另一个开发人员那里继承的一个项目,我是 Windows 表单编程的新手。我想知道是否有更好的方法来处理睡眠/唤醒过程,而不是关闭表单并在唤醒时重新创建它们,或者强制创建到主线程上。注意:如果我删除代码并让它在计算机休眠(挂起)时什么也不做,而在它唤醒(恢复)时什么也不做,那么程序将继续正常工作(在主线程上运行)。任何帮助将不胜感激。谢谢大家。

0 投票
1 回答
1314 浏览

android - 在android上暂停/睡眠之前和之后执行脚本

我想在我的 android 设备进入睡眠状态之前以及在它唤醒之后执行一个脚本。我发现对于 c 有一个类似于“early_suspend”的钩子,但我只想执行几行 bash,我还不想进行交叉编译。

背景如下:我有一个糟糕的 Archos 平板电脑(使用 android 2.2),如果屏幕亮度太低,它有时在暂停后不会重新激活屏幕。我现在的解决方法是在暂停之前增加亮度,然后在醒来后再次恢复。

附带说明:我的设备已植根,只要它有效,我不在乎解决方案有多丑陋。

那么android中的shell代码是否有一些“提前暂停”钩子?

0 投票
2 回答
1262 浏览

python - 将脚本设置为在计算的时间后暂停和恢复

更新如下:

我有一个脚本,它有一个我制作的函数,它可以根据几个因素计算将脚本设置为休眠的时间,这意味着脚本可能不需要再次运行半小时,也可能需要几天时间。

现在,我曾认为 time.sleep(seconds) 会将程序设置为睡眠状态,然后将其唤醒并再次运行。

显然,这并没有像我想象的那样。当然,大多数事情似乎从来没有像我想的那样,学习的乐趣!

无论如何,一旦我发现脚本永远不会恢复,我就四处寻找其他方法来做到这一点。有人提到过os.exec,但根据我的(非常有限的)知识,它看起来像是用来从脚本中运行其他东西。然后我尝试了该threading.Timer功能,但这似乎也没有达到我想要的效果。或者我不知道我在做什么,这更有可能。然后我看到人们提到线程和守护进程以及我根本不知道的事情。

我在想也许是一个 for 循环,但这似乎很业余(锅遇到水壶!),我不确定它甚至会如何工作(如果有的话)。

那么有没有一种简单的方法可以将脚本设置为停止运行一段特定的时间,再次运行,然后休眠直到下一次?我认为必须有一个非常简单的方法来做到这一点,但我真的不知道。我在使用 Python 3.2.3 的 Windows 7 上,而且我现在才学习 python 几个月,所以任何复杂的东西都可能超出我的技能水平。

更新:

好的,这就是我的代码当前设置的方式。我用这个简单的代码试过了,问题似乎是它永远不会醒来?我不确定发生了什么。我以为它会调用第一个函数,打印项目,然后休眠 5 秒,然后重复 ad naseum。也许有人可以解释我应该怎么做。

谢谢!

0 投票
1 回答
1198 浏览

iphone - 延长 iOS 应用暂停时间

当我按下主页按钮时,我的应用程序被正确挂起,但它只持续了几分钟。如果我离开它一会儿并返回它,应用程序就会重新启动。

我没有在我的应用程序中运行任何后台任务,其他应用程序的暂停时间比我的要长得多。

这可能是什么潜在原因?我是否有可能在后台运行我不知道的操作,并且当内存不足时 iOS 正在杀死我的应用程序?