问题标签 [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 投票
3 回答
3262 浏览

c - 暂停远程进程的执行(C、Windows)

我可以使用 SuspendThread() 挂起另一个进程的线程。有没有办法完全暂停该进程的执行?如果是,请发布代码。

谢谢。

PS:既然你会问“你为什么要这样做”,我会在这里发布。我正在处理不再维护的遗留软件。我无权访问源代码。现在我需要它暂停,直到文件充满数据,然后恢复执行。

0 投票
1 回答
1686 浏览

javascript - JScript 等待函数

我有一个用 JScript(不是 javascript)编写的函数,我需要暂停,直到某个全局变量变为真。在 ajax 响应后调用另一个函数时,全局变量更改为 true:

当我尝试循环直到变量为真时:

我进入了忙碌的等待状态,并且从未调用过回调函数。

有些人建议使用 WScript.wait() 但我的应用程序并不了解 WScript。SetTimeout() 也无济于事,因为它是异步调用并且不会暂停我的原始功能。

还有什么建议吗?

关于我的问题的更多信息:我希望我的脚本调用 2 个函数:

我希望waitWhileAjaxIsNotCompleted()单击提交 ajax 请求(由 A4J 实现)的按钮并在 ajax 完成时终止。为了让我知道 ajax 何时完成,我注册了一个函数作为侦听器,当 ajax 完成时将被唤醒。此函数更改 globalVariable 值。我的waitWhileAjaxIsNotComplete()进入一个无限循环,等待 glovalVariable 值改变。当它发生变化时(听者醒来后),我可以结束函数并继续使用doSomthingElse()函数。

你可以看到更多关于实现的信息:QTP Web extensibilty toolkit and ajax

0 投票
2 回答
38621 浏览

sql - SQL 活动监视器中的暂停状态

什么会导致在 Management Studio 中执行的查询被暂停?

  1. 我从一个表(有 1100 万行)中执行一个简单的 select top 60000,结果在一两秒内返回。
  2. 我将查询更改为前 70000,结果最多需要 40 分钟。

通过对另一个但相关的问题进行一些搜索,我发现有人使用 DBCC FREEPROCCACHE 来修复它。

  1. 我运行 DBCC FREEPROCCACHE,然后重做 70000 的查询,它似乎工作。

但是,使用不同的查询仍然会出现此问题。

  1. 我增加说 90000 或者如果我尝试使用 [Right->Open Table] 打开表,它会提取大约 8000 条记录并停止。

在我执行 Open Table 时检查活动日志显示会话已暂停,等待类型为“Async_Network_IO”。对于运行选择 90000 的会话,状态为“睡眠”,这与上述选择 70000 查询的状态相同,但在 45 分钟内返回。令我感到奇怪的是,状态显示为“正在睡觉”,而且它似乎没有变为“可运行”(我让活动监视器每 30 秒刷新一次)。

补充笔记:

  • 我没有同时运行 Open Table 和选择 90000。所有查询一次完成一个。
  • 我正在运行 32 位 SQL Server 2005 SP2 CU9。我尝试升级到 SP3,但遇到了安装失败。在我尝试此升级之前就出现了这些问题。
  • 服务器设置是一个 Active/Active 集群,问题发生在任一节点上,而另一个实例没有此问题。
  • 我在同一个服务器实例上有大约 20 个其他数据库,但只有这个数据库看到了这个问题。
  • 这个数据库变得相当大。目前为 76756.19MB。数据文件为 11,513MB。
  • 我使用远程桌面在服务器框本地登录。
0 投票
1 回答
120 浏览

winapi - 在 Vista 上请求暂停但允许其他应用程序取消

SetSuspendState()我的应用程序在完成一项冗长的任务后使用 Win32 API 触发系统挂起或休眠。

API 接受一个参数“ForceCritical”,该参数确定系统是立即挂起还是PBT_APMQUERYSUSPEND先广播以允许其他应用程序有机会取消挂起。我的应用程序使用它与媒体播放器等其他应用程序很好地播放,所以如果你正在听音乐或其他东西,它不会暂停。

出于某种原因,从 Vista 开始,MS 改变了一些东西,所以这个参数被忽略了,所以SetSuspendState立即导致挂起,其他应用程序没有机会停止它。

有谁知道我怎样才能在 Vista 上再次获得所需的“礼貌”行为?

0 投票
4 回答
1529 浏览

c# - 恢复 C# 线程

可能重复的问题: 有没有办法无限期地暂停一个线程?


在我的代码中,我执行以下操作

然后我得到下面的异常,因为我在它没有被暂停时调用了 resume。

我注意到这个警告

所以我想知道有没有办法恢复并忽略它没有被暂停的异常/情况?我讨厌写下面而不是一行

0 投票
2 回答
3666 浏览

winapi - 为什么 SetThreadExecutionState(ES_SYSTEM_REQUIRED) 会阻止显示器断电?

我试图让系统保持开启,同时让显示器关闭,以便在系统无人看管的情况下完成下载。为了实现这一点,我呼吁:

每当我从下载中获取数据时。但是,这似乎也可以防止显示器断电(显示器根据其配置的调光计时器变暗,但永远不会完全关闭)。根据MSDN 条目,只有当我也通过时才会发生这种情况ES_DISPLAY_REQUIRED- 为什么它仍然被阻止?

请注意,当我停止呼叫时SetThreadExecutionState,显示器不会再次开始断电;我必须终止程序才能关闭显示器。但是,如果用 调用它不应该只有持久效果ES_CONTINUOUS吗?

如果重要的话,我正在使用 Windows 7。我目前无法在其他版本上进行测试...

0 投票
4 回答
9739 浏览

multithreading - Delphi 线程等待数据,处理它,然后继续等待

我需要在 Delphi 中创建一个具有以下特征的线程:

  • 等到主线程将数据添加到共享队列。
  • 处理队列中的所有数据,将结果返回到主线程(对于最后一部分,我将只向主窗口发送消息)。处理是耗时的,因此在工作线程正在处理以前的条目时,可能会将新数据添加到队列中。
  • 恢复等待,使用尽可能少的 cpu 周期。

我无法向线程发送消息,因为它没有窗口句柄。

我应该使用 WaitForObject 的一些变体吗?如果是这样,那还要等什么呢?如果没有,那么我怎样才能让线程等待,然后在新数据进入队列时唤醒它?

我读过Multithreading - The Delphi Way,这似乎没有回答我的问题。也许 OmniThreadLibrary可以做我需要的;我不知道,因为文档很少。一般来说,我对线程的了解还不够,无法弄清楚该库是否会在这里提供帮助以及如何使用它(甚至为什么要使用它而不是仅仅使用 TThread 后代)。

0 投票
1 回答
2265 浏览

mysql - 事务暂停在 MySQL 中是如何工作的?

在 Spring Framework 手册中,他们声明对于 PROPAGATION_REQUIRES_NEW,当前事务将被暂停。

什么是“暂停交易”?超时计时器停止计数当前事务?这种暂停的实际含义是什么?

谢谢,

阿萨夫

0 投票
4 回答
2382 浏览

process - 如何保存程序的进度,并在以后恢复?

您可能知道很多程序,例如一些密码破解程序,我们可以在它们运行时停止它们,并且当我们再次运行该程序(输入或不输入相同的输入)时,它们将能够从它们所在的位置继续已经离开了。我想知道这些程序使用了什么样的技术?

[编辑] 我正在编写一个主要基于递归函数的程序。据我所知,我认为在我的程序中保存这些状态非常困难。有没有什么技术,以某种方式,保存我的程序中涉及的堆栈内容、函数调用和数据,然后当它重新启动时,它可以像没有停止一样运行?这只是我脑海中的一些概念,所以如果没有意义,请原谅我......

0 投票
3 回答
45080 浏览

sql-server - SQL Server - 为什么我的 SPID 在创建索引时会“暂停”但没有被阻止?

我有一个 SQL 2005 x64 服务器,当我尝试对它发出一些查询时(例如,当我尝试创建索引时),我的 SPID 立即进入“睡眠”状态,并且似乎无限期地等待在那里。它没有被阻塞(SP_WHO2 中的“BLKBY”列为空),CPU 和 DiskIO 值非常小(每个都低于 300),并且没有增长。

我的查询可能在等待什么?如果我从正在索引的表中执行 SELECT *,我会在一分钟左右的时间内恢复所有数百万行,因此它不会阻止表访问,甚至(似乎)表争用。

对我可以检查的其他事情有什么想法吗?我只需要放弃并重新启动我的 SQL 实例吗?:)

详细信息:我正在 SSMS 中的另一个选项卡上运行 CREATE INDEX,它永远不会返回 - 它只是显示“正在执行”并且永远不会返回,所以我认为该过程没有被放弃。