问题标签 [resource-cleanup]
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.
.net - 应用程序关闭后如何标记要删除的文件夹?
我正在尝试制作一个“完整包”的 .NET 应用程序。也就是说,只有一个 .exe 文件。
为此,我将引用的程序集(以及一些非托管的 .DLL)嵌入到我的 .exe 中。运行 .exe 时,这些文件将被提取到一个临时文件夹中,然后加载到AppDomain.AssemblyResolve
事件中。
但问题是程序完成后我无法删除这些文件。它们被加载并锁定,直到进程终止。我不想用无数的临时 DLL 文件乱扔计算机。我该如何解决这个问题?
android - Android 自定义偏好:将代码放在哪里进行清理?
我正在创建一个自定义android.preference.Preference
,并且在构造函数中我需要注册一个监听器以进行更改SharedPreferences
:
根据docs ,在方法中registerOnSharedPreferenceChangeListener()
使用对 the 的调用来补充对 the 的调用是一个好主意:unregisterOnSharedPreferenceChangeListener()
onPause()
为了在活动中进行正确的生命周期管理,我们建议您分别在 onResume() 和 onPause() 回调期间注册和取消注册 SharedPreferences.OnSharedPreferenceChangeListener:
由于Preference
不提供onPause()
覆盖方法,我想知道在自定义实现的情况下我应该调用的最佳替代方法是什么?unregisterOnSharedPreferenceChangeListener()
Preference
例如,有方法onPrepareForRemoval()
和onSaveInstanceState()
方法,但我不确定其中之一是否适合将清理代码放入其中。
有什么想法吗?
c# - 清理存储文件
我有一个基于 MSMQ 的 C# 应用程序,在本地 pc 上有一个持久队列。我在本地使用 MSMQ,而不是跨网络发送消息。
我的问题是我没有巨大的硬盘驱动器,并且在某些情况下 MSMQ 存储文件太多,它们会填满所有可用的磁盘空间。
此外,如果我清除队列,文件仍然存在。
我在网上查了一下,使用 MSMQApplication.Tidy 找到了这个解决方案。这里是链接 -->链接到 MSDN 博客
但是我无法在我的 c# 应用程序中使用它,我没有找到相关的 COM 对象。
其他可能的方法是更改注册表项 MessageCleanupInterval,但这不能满足我的需要。我需要在需要时清理队列。
java - 如果构建被中断,詹金斯关闭钩子
我有一份 Jenkins 工作,集成测试需要某些资源。我有一个关闭钩子,可确保所有连接都已关闭并停止工作线程,以防在执行过程中丢失其中一些或(如我所愿)构建被中断。但是,关闭钩子不是如果作业被 UI 或其他东西打断,则执行。有没有办法让它执行,或者当作业在完成之前被中断时创建一个事件?提前致谢
multithreading - Qt5:如何创建一个每天凌晨 3:00 运行一次的(清理)任务?
我在 Windows7 下使用 Qt5。
我知道如何使用 QThread 创建任务,但我的问题是:
如何每天凌晨 03:00 运行它?
我在考虑 QTimer,但它似乎并不好......它无法以某种方式链接到 03:00am。
只是说清楚:我不能使用某些 Windows 应用程序。它必须在我的 Qt 应用程序中进行编码,因为它也执行一些清理工作:清理历史记录列表,将其修剪到 1000 行(或其他)等。所以,你看我不能使用 TaskScheduler 或类似的 Windows 工具来做到这一点。 ..
ubuntu - ceph 清理 pgs 活动+重新映射
我使用基于 Ubuntu Server 14.04 的 3 节点 Ceph 集群。实际上我的问题是 192 个归置组 (pgs) 处于活动+重新映射状态。所有节点都在线,所有osd都在线。
我怎样才能清理pgs?
有人有想法吗?
最好的问候 schlussbilanz
c# - 为什么将 null 转换为清理代码中的变量?
在 C# 中查看某些库中的代码时(使用 Resharper 进行反编译),我有时会遇到如下所示的清理代码:
null
强制转换为此处正在清除的字段类型有什么好处?
tfs - TFS - 如何识别过时的构建定义
我们是整个公司的支持项目。
我们将有大约 100 个项目,每个项目 3 个构建定义,大约 5-7 个分支及其构建定义。
现在随着分支的开发完成,该分支的构建定义没有用了。
为了优化磁盘使用,我们希望实施每周检查过时的构建定义然后运行清理命令的作业。
有什么方法可以实现相同的吗?或 Microsoft 提供的任何工具?
shell - shell:清理由于共享 stdout/stderr 而挂起的泄露的后台进程
我需要在临时容器/VM 中的(远程)shell 上为测试执行引擎运行基本上任意命令。有时这些泄漏后台进程会导致整个命令挂起。这可以归结为这个简单的命令:
在这里,backgroundedsleep 30
扮演了泄露进程的角色(实际上将类似于dbus-daemon
),而 echo 是我想要运行的实际内容。此处应将其sleep 30 & echo payload
视为原子不透明示例命令。
上面的命令很好,并立即返回,因为 shell 和 sleep 的 stdout/stderr 都是 PTY。但是,当将命令的输出捕获到管道/文件时(毕竟,测试运行程序希望将所有内容保存到日志中),整个命令会挂起:
现在,这可以通过一些相当可笑的复杂 shell 魔法来解决,它确定 stdout/err 的 FD /proc/$$/fd/{1,2}
,迭代ls /proc/[0-9]*/fd/*
并杀死每个也具有相同 stdout/stderr 的进程。但这涉及到大量脆弱的 shell 代码和昂贵的 shell 字符串比较。
有没有办法以更优雅、更简单的方式清理这些泄露的后台进程?setsid
没有帮助:
请注意,进程组/会话并彻底杀死它们是不够的,因为泄漏的进程(如 dbus-daemon)通常会自行设置。
PS 我只能在这些环境中假设 POSIX shell 或 bash;没有 Python、Perl 等。
先感谢您!
go - 多个延迟与延迟匿名函数
发出多个defer
依赖于顺序的语句,或者推迟一个封装逻辑的匿名函数,是更安全还是更惯用?
例子:
在上面的例子中,语法是最小的,但延迟的顺序与要执行的逻辑相反。
在下面的例子中,行数更多,“语法”更多,但逻辑顺序更自然:
使用哪一个?