问题标签 [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 - asp.net 应用程序的“带外”处理技术

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

0 投票
5 回答
5353 浏览

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

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

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

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

0 投票
20 回答
20660 浏览

windows - 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 浏览

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

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

0 投票
15 回答
91529 浏览

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

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

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

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

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

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

0 投票
2 回答
2054 浏览

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

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

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

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

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

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

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

0 投票
5 回答
25080 浏览

java - Java-改变摇摆背景颜色?

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

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

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

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

0 投票
11 回答
87347 浏览

html - Internet Explorer 中的渐变颜色

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

0 投票
2 回答
696 浏览

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

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

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

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

谢谢。

保罗。

0 投票
5 回答
2494 浏览

sql-server - 从 SqlDataAdapter 后台填充 DataGridView

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

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

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

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

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