标签: suspend

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

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

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

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

我应该使用WaitForObject的某些变体吗?如果是这样,等待的是什么?如果没有,那么我如何保持线程等待,然后在新数据进入队列时唤醒它?

我读过Multithreading - Delphi Way,它似乎没有回答我的问题.也许 OmniThreadLibrary可以做我需要的事情; 我无法分辨,因为文档很少.我不太了解一般的线程,以确定库是否会在这里提供帮助以及如何使用它(甚至为什么要使用它而不是仅使用TThread后代).

delphi queue resume multithreading suspend

9
推荐指数
1
解决办法
9041
查看次数

SQL Server - 在创建索引时,为什么我的SPID会被"暂停"但不会被阻止?

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

我的查询可能还在等什么?如果我在表格中执行SELECT*,我会在一分钟左右的时间内返回所有百万行,因此它不会阻止表访问,甚至(似乎)表争用.

关于我可以查看的其他事情的任何想法?我只需要放弃并重新启动我的SQL实例吗?:)

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

sql-server suspend

9
推荐指数
1
解决办法
4万
查看次数

实时感知sleep()调用?

我已经写了一个实用工具,通过蓝牙TomTom GPS手表交谈,并且我试图让它作为一个即时可待的背景守护程序运行良好.

程序定期与GPS设备通信,然后暂时与sleeps 通信,直到再次需要它为止.

我注意到sleep()与系统挂起奇怪地交互:当我进入系统挂起(运行Linux 3.16.0内核的笔记本电脑)然后唤醒计算机时,sleep似乎没有注意到暂停时间.例如,请执行以下操作sleep.c:

#include <time.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char**argv)
{
    time_t t=time(NULL);
    printf("sleep at: %s", ctime(&t));

    sleep(atoi(argv[1]));

    t=time(NULL);
    printf("wake at: %s", ctime(&t));
}
dlenski@dlenski-ultra:~$ 
Run Code Online (Sandbox Code Playgroud)

中途编译,运行和睡眠;

$ gcc sleep.c -o sleep
$ ./sleep 30
sleep at: Fri Aug 21 21:05:36 2015
<suspend computer for 17 seconds>
wake at: Fri Aug 21 21:06:23 2015
Run Code Online (Sandbox Code Playgroud)

有没有一种正确的方法来暂停程序执行的方式是时钟 - 时间 -意识而不是系统正常运行时间 -意识到? …

c linux sleep suspend clock

9
推荐指数
1
解决办法
810
查看次数

UIApplicationExitsOnSuspend我缺少的其他东西?

所以我知道这已被打死,但我仍然无法找到解决方案.

我将我的UIApplicationExitsOnSuspend设置为<true/>在Info.plist中,仍然在模拟器和iPhone 4设备上,应用程序进入待机而不是终止?

有什么想法让它终止的任何想法?也许我需要从应用程序委托中删除方法?有任何想法吗?

iphone suspend terminate ios4

8
推荐指数
2
解决办法
2万
查看次数

PyCharm - 如何挂起所有线程

我们使用PyCharm 5.0.1进行多线程调试.
当它在断点处停止时,只有特定线程停止而所有其他线程继续.这使得很难"冻结时刻"并检查params值以及其他线程的当前状态.

当其中一个线程在断点处停止时,是否可以暂停所有线程?

这可能是最新的Pycharm 2016还是[最新] Pycharm版本?

python debugging multithreading suspend pycharm

8
推荐指数
1
解决办法
1984
查看次数

iOS:如何判断应用程序何时暂停?

我想知道我的应用何时暂停?在一定时间内未被激活或被用户终止的状态.我需要这个,因为我需要关闭一个Web套接字的连接.我想在应用程序处于后台状态时保持连接处于活动状态.

我该怎么做呢?

谢谢

编辑:这不是一个重复的问题,其他问题是关于应用程序不再活动时,我想知道该应用程序已被终止.

background objective-c suspend application-state ios

7
推荐指数
1
解决办法
1万
查看次数

pm-suspend 后计算机立即唤醒。如何确定是什么原因造成的?

我正在运行一个 Debian-Jessy 服务器,它在几个小时的网络不活动后进入 S3 睡眠模式(我制作了一个小 bash 脚本,每两个小时用 crontab 检查一次)。暂停几秒钟后,它再次醒来。几个小时后,当我的脚本由于网络不活动而再次触发 pm-suspend 时,它会暂停并且不会再次唤醒。唤醒它的唯一方法应该是 WOL(网络唤醒)。

我能做什么?

编辑:这可能与 WOL 包有关,因为我发现有人报告了同样的问题: https : //bbs.archlinux.org/viewtopic.php?id=173596

http://ubuntuforums.org/showthread.php?t=2233674

https://bugzilla.kernel.org/show_bug.cgi?id=46421

这是我的脚本的示例日志:

---------------------------------------
Sun Nov 23 02:00:01 CET 2014
No activity; Suspending now!
#######################################
Sun Nov 23 02:00:02 CET 2014
pm-suspend
#######################################
Sun Nov 23 02:00:15 CET 2014
pm-resume
---------------------------------------
Sun Nov 23 06:00:01 CET 2014
No activity; Suspending now!
#######################################
Sun Nov 23 06:00:01 CET 2014
pm-suspend
#######################################
Sun Nov 23 16:32:14 CET 2014
pm-resume
Run Code Online (Sandbox Code Playgroud)

如您所见,它立即再次醒来。但是第二次,它成功挂起。

我禁用了 proc/acpi/wakeup 中的每个设备: …

linux debian suspend acpi standby

7
推荐指数
1
解决办法
2555
查看次数

从 pm-suspend 中唤醒会导致完全重启

从醒来

$ sudo pm-suspend
Run Code Online (Sandbox Code Playgroud)

导致异常行为取决于笔记本电脑是否连接到外部电源。

以下场景已经过测试可重现:

  1. 使用交流电源时暂停,唤醒。结果:正常恢复。
  2. 在电池供电时暂停,唤醒。结果:完全重启。
  3. 使用交流电源时暂停,断开交流电源,唤醒。结果:完全重启。
  4. 使用交流电源时暂停,断开交流电源,重新连接交流电源,唤醒。结果:完全重启。
  5. 使用电池供电时暂停,连接交流电源,唤醒。结果:完全重启。

编辑 1:“完全重新启动”不会在完全关闭之后进行,正如在启动期间运行的 fsck 所证明的那样。我不相信这是预期的行为。

你能,善良的互联网,请帮助诊断这个问题吗?

基本调试信息如下。请让我知道我可以提供哪些进一步的调试信息。

System: Ubuntu 16.04 LTS
Machine: Asus K501UX
Video Driver: xserver-xorg-video-nouveau
Video Card: NVIDIA GeForce GTX 950M
Run Code Online (Sandbox Code Playgroud)

(使用专有的 nvidia 驱动程序会导致加载驱动程序后出现空白屏幕。)

$ uname -a
Linux robyn-xenail 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

亮度设置电源设置的屏幕截图。

再补充两点信息:

  1. 这个问题过去不存在。我不清楚是什么导致了它的发作。加载 Linux 内核版本 4.2.0-27(我目前安装的最旧版本)并不能解决问题。
  2. 我不怀疑这是由 pm-suspend 启动的挂起过程的问题,而是与某些电源设置(acpi 等)有关。我已附上上述案例 1 …

ubuntu suspend ubuntu-16.04 asus

7
推荐指数
1
解决办法
4651
查看次数

Android 中的 Kotlin - 暂停房间中的功能

我正在查看https://github.com/android/architecture-samples/tree/dev-dagger/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/source上的示例/localdev-dagger分支和TasksLocalDataSource.kt文件中,它们具有以下方法:

override suspend fun getTasks(): Result<List<Task>> = withContext(ioDispatcher) {
        return@withContext try {
            Success(tasksDao.getTasks())
        } catch (e: Exception) {
            Error(e)
        }
}
Run Code Online (Sandbox Code Playgroud)

通过使用withContextIO 作为调度程序,他们希望协程在 IO 线程上运行。但是tasksDao.getTasks()方法里面的 Room 请求是一个挂起函数。在https://codelabs.developers.google.com/codelabs/kotlin-coroutines/#8的代码实验室中,他们说当它是一个挂起函数时负责在后台线程上Room运行请求(此处getTasks():)这里就是这种情况。那么,使用 a 是不是太多了withContext(ioDispatcher)?我不能像下面这样重写上面的方法吗?:

override suspend fun getTasks(): Result<List<Task>> {
         return Success(tasksDao.getTasks())
}
Run Code Online (Sandbox Code Playgroud)

android suspend kotlin android-room kotlin-coroutines

7
推荐指数
1
解决办法
364
查看次数

Android Studio 和 Kotlin - 在挂起函数中运行时设置断点不起作用

在我用 Kotlin 开发的 Android 应用程序中,我无法使调试器在具有挂起功能的动态功能中在运行时设置的断点处停止。如果我在启动应用程序之前设置断点,它会起作用,但是当我尝试在运行时设置相同的断点时,它不会起作用,调试器只是继续跳过断点。我还检查了断点选项中的“全部暂停”,但无济于事,调试器仍然跳过断点。这是一个非常烦人的情况,因为每次我需要在挂起函数中的特定行暂停执行时,我必须首先停止应用程序,然后设置断点,然后重新启动应用程序。只有在这种情况下它才有效。相反,如果我在非挂起函数中设置断点,它也会在运行时起作用。任何想法?

debugging android breakpoints suspend kotlin

7
推荐指数
0
解决办法
1151
查看次数