问题标签 [background]

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 投票
9 回答
982 浏览

asp.net 应用程序的“带外”处理技术

Jeff 之前曾在博客上写过使用缓存在他的网站上执行“带外”处理,但是我想知道人们使用哪些其他技术来处理这些类型的任务?

0 投票
5 回答
5353 浏览

如何从 Windows 上的 Perl CGI 脚本派生后台进程?

在 Windows 上运行时,我在从 Perl CGI 脚本分叉进程时遇到了一些麻烦。主要问题似乎是在 Windows 上运行时模拟了“fork”,实际上似乎并没有创建新进程(只是当前进程中的另一个线程)。这意味着等待进程完成的 Web 服务器(如 IIS)会继续等待,直到“后台”进程完成。

有没有办法从 Windows 下的 CGI 脚本中分叉出后台进程?更好的是,我可以调用一个函数以跨平台方式执行此操作吗?

(而且只是为了让生活更加困难,我真的想要一种同时将分叉进程输出重定向到文件的好方法)。

0 投票
20 回答
20660 浏览

C/C++ 程序如何将自己置于后台?

从命令行启动的正在运行的 C 或 C++ 程序将自身置于后台的最佳方式是什么,相当于用户从命令末尾带有“&”的 unix shell 启动?(但用户没有。)它是一个 GUI 应用程序,不需要任何 shell I/O,所以没有理由在启动后绑定 shell。但我希望在没有“&”(或在 Windows 上)的情况下自动启动 shell 命令。

理想情况下,我想要一个可以在任何 Linux、OS X 和 Windows 上运行的解决方案。(或者我可以使用#ifdef 选择的单独解决方案。)可以假设这应该在执行开始时完成,而不是在中间的某个地方。

一种解决方案是让主程序成为启动真正二进制文件的脚本,小心地将其置于后台。但是,需要这些耦合的 shell/二进制对似乎并不令人满意。

另一种解决方案是立即启动另一个执行版本(使用“系统”或 CreateProcess),使用相同的命令行参数,但将子进程置于后台,然后让父进程退出。但与将自身置于后台的过程相比,这似乎很笨拙。

在几个答案后编辑:是的,fork()(或 system(),或 Windows 上的 CreateProcess)是一种方法,我在最初的问题中暗示了这一点。但是所有这些解决方案都会创建一个后台的 SECOND 进程,然后终止原始进程。我想知道是否有办法将现有进程置于后台。一个区别是,如果应用程序是从记录其进程 id 的脚本启动的(可能是为了以后杀死或其他目的),那么新分叉或创建的进程将具有不同的 id,因此任何启动脚本都无法控制,如果你明白我在说什么。

编辑#2

fork() 对于 OS X 来说不是一个好的解决方案,其中“fork”的手册页说如果使用某些框架或库是不安全的。我试过了,我的应用程序在运行时大声抱怨:“进程已经分叉,你不能安全地使用这个 CoreFoundation 功能。你必须 exec()。”

我对 daemon() 很感兴趣,但是当我在 OS X 上尝试它时,它给出了相同的错误消息,所以我认为它只是 fork() 的一个精美包装器,并且具有相同的限制。

请原谅 OS X 中心主义,它恰好是我眼前的系统。但我确实在寻找所有三个平台的解决方案。

0 投票
8 回答
2061 浏览

开发 c# 长时间运行的处理器应用程序的最佳方法

我有几个不同的 c# worker 应用程序,它们运行各种连续任务:从队列发送电子邮件、将新订单从网站数据库导入订单数据库、进行数据库备份和恢复、为 OLTP -> OLAP 运行数据处理以及其他相关任务。之前,我将它们作为 Windows 服务发布,但目前我将它们作为常规控制台应用程序发布。它们都基于我创建的通用任务运行程序框架,对此我很满意,但是我不确定部署这些类型的应用程序的最佳方式是什么。我喜欢控制台版本,因为它快速简单,并且可以快速查看程序活动和输出。缺点是工作计算机有几个控制台屏幕正在运行并且变得混乱。另一方面,服务方法似乎需要很长时间才能部署,我必须通过事件日志来查看消息。对此有何经验/意见?

0 投票
15 回答
91529 浏览

bash:在后台启动多个链式命令

我正在尝试使用 bash 在后台并行运行一些命令。这是我正在尝试做的事情:

反引号 (``) 之间的部分生成一个新的 shell 并连续执行命令。问题是,只有在执行完最后一个命令后,才会返回对原始程序的控制。我想在后台执行整个语句(我不期待任何输出/返回值)并且我希望循环继续运行。

调用程序(具有循环的程序)在所有生成的 shell 完成之前不会结束。

我可以在 perl 中使用线程来生成调用不同 shell 的不同线程,但这似乎有点矫枉过正......

我可以启动一个 shell,给它一组命令并告诉它进入后台吗?

0 投票
2 回答
2054 浏览

.Net 后台工作进程本地化帮助

在我的 Windows 窗体应用程序中,我的后台工作进程报告了本地化消息,我遇到了一些奇怪的行为。

该应用程序是一个带有 Windows 窗体的设置应用程序。该应用程序启动一个后台工作程序来执行和 IIS 重置,然后安装 MSI。

我第一次在西班牙语 Win Server 2003 VM 上运行应用程序时,表单是西班牙语,但不是 BWP 消息。如果我立即再次运行它,则消息为西班牙语。

.Resources 文件是嵌入式资源,在应用程序启动时被提取到 temp 目录。

我的代码通过自定义资源管理器类检索本地化字符串。此类为临时目录中的 .Resources 文件创建基于文件的资源。这工作正常,因为 Windows 窗体标签和标题每次都本地化。

有没有人经历过这个?我完全卡住了,请帮忙。谢谢,安德鲁

0 投票
5 回答
25080 浏览

Java-改变摇摆背景颜色?

好的,所以我有一个使用“系统”外观和感觉的摇摆应用程序。现在,我想将主面板的背景颜色更改为黑色。太容易了吧?

嗯,是的,除了现在应用程序中的控件看起来很愚蠢,因为它们的“阴影”,因为想要一个更好的词,逐渐淡化为旧系统默认颜色(总窗户灰色)。所以所有控件上都有浅灰色的“角”,尤其是 JTabbedPane 上的选项卡。我知道它可以修复,因为如果您将 windowsXP 主题更改为具有不同默认应用程序颜色的主题,控件将采用这种更改后的颜色,并且它们的阴影会向它“淡化”。

但我不知道它是什么 UIManager 键,或者即使你可以用 UIManger 来做。

我真的不想改变 L&F 引擎,因为除此之外它看起来还不错。

0 投票
11 回答
87347 浏览

Internet Explorer 中的渐变颜色

我知道 Internet Explorer 有一些专有扩展,因此您可以执行诸如创建具有渐变背景的 div 之类的操作。我不记得元素名称或它的用法。有没有人有一些例子或链接?

0 投票
2 回答
696 浏览

以编程方式导航到 Windows Mobile 主屏幕

我们有一个在后台下载一些文件的应用程序。当建立 Internet 连接时,我们的应用程序会弹出,并且在提示用户接受下载后,我们希望在执行操作时切换回主屏幕。

我们不知道该怎么做。我们可以模拟几次按下“返回”,这有时会起作用,但最终的结果取决于互联网连接发生时用户在做什么。

那么,有人可以提供如何做到这一点的指针吗?

谢谢。

保罗。

0 投票
5 回答
2494 浏览

从 SqlDataAdapter 后台填充 DataGridView

我有一个大型数据集(超过 100,000 条记录),我希望将其加载到 DataGridView 中。执行此操作的存储过程可能需要 10 秒或更长时间才能完成。

到目前为止,我有一个 BackgroundWorker 可以防止 UI 锁定,并实现了一个基本的“请稍候”对话框。

我想做的是以某种方式在 DataGridView 中填充结果,因为它们以某种方式从数据库返回。描述它的最佳方式是 SQL Server Management Studio 是如何做到的——当查询运行时,即使查询仍在执行,行也会立即返回。还有一个按钮可以停止查询并保留已返回的行。

我怎样才能在我自己的代码中做到这一点?

DataGridView 仅用于显示数据行,然后用户单击其中一个执行其他操作。没有任何东西被写回数据库。