我正在寻找一种简单且无法捕获的方法来终止我的C++应用程序的Mac端口.在我使用的Windows中
TerminateProcess(GetCurrentProcess, 0);
Run Code Online (Sandbox Code Playgroud)
我可以在Mac OS X/XCode/GCC上使用的等效命令是什么?
我希望能够在点击按钮时终止一个线程,例如,如果用户需要,请将该过程停止一半.显然,你可以通过在线程中设置Terminated变量来实现这一点,这意味着你可以在退出之前执行某些代码而不是突然终止.
到目前为止的代码如下: -
单击启动线程
procedure TForm1.Panel29Click(Sender: TObject);
var
cmpfil : TThread;
begin
if (Edit3.Text <> '') AND (Edit4.Text <> '') then
begin
Form1.ProgressBar1.Min := 0;
Form1.Progressbar1.Max := 30000;
Form1.ProgressBar1.Position := 0;
cmpfiles := TCompareFilesThread.Create();
end;
end;
Run Code Online (Sandbox Code Playgroud)
创建线程
constructor TCompareFilesThread.Create;
begin
inherited Create(False);
end;
Run Code Online (Sandbox Code Playgroud)
实际线程
procedure TCompareFilesThread.Execute;
var
forg, fpat : file;
byteorg, bytepat : Array[0..1023] of byte;
i,z,o : integer;
fil1,fil2 : TFilename;
begin
//Form1.CompareFiles(FEdit3Text, FEdit4Text, FGrid, FOp, FProg);
begin
fil1 := Form1.Edit3.Text;
fil2 := Form1.Edit4.Text;
if Form1.CRCAdlerGenFile(fil1,1) <> Form1.CRCAdlerGenFile(fil2,1) …
Run Code Online (Sandbox Code Playgroud) 我的朋友在 macOS 环境中,他想os.system('exit')
在他的 python 脚本末尾调用以关闭终端。它没有。这并不让我感到惊讶,但我想知道在进行此调用时 python 脚本和终端之间究竟发生了什么。
在我的心理模拟中,终端应该告诉你还有正在运行的作业,但这也不会发生。
作为一个附带问题:当进程调用它时,一些不太常见的终端会关闭吗?
当库通过静态初始化程序运行时,Vibe.D 是否具有内置终止函数?我想在 vibe.d 抛出异常时终止应用程序,例如打开文件。
我有一个服务器正在使用该listenHTTP
功能进行侦听。
我是haskell编程的新手.我想要一个示例代码,说明如何通过输入命令(例如QUIT)退出主程序并返回默认的Prelude>屏幕.我正在使用GHC 7.8.3解释器.还请提一下我需要导入哪些模块(如果有的话).我一直在寻找并尝试不同的东西,但似乎没有任何工作.真的很想知道如何做到这一点.非常感谢你提前
如果我们假设:在 Linux 中终止一系列进程的最佳方法是什么:
我正在研究的特定场景是 Bash,但技术越通用越好。
我有一个场景,由于Oracle数据库,每个星期一早上都有一个进程被卡住,所以我尝试创建一个PowerShell脚本来运行每个星期一,但无论是否收到错误,该过程仍然存在.
我试图用来"杀死"的那条线是:
Get-Process -Name ez0* -ComputerName $server | Stop-Process -Force
Run Code Online (Sandbox Code Playgroud)
尝试在本地做这个没有-ComputerName
.
我没有从这条线上得到任何错误,无论-Force
它是否只是执行并继续前进.
只是做Get-Process
工作,我可以看到它,但我不能用PowerShell结束它.经过多次尝试,我远程登录到服务器,只需右键单击该过程并选择"结束任务"即可.
这是一个奇怪的过程,因为它是初始8中的一个(基于核心),当您停止服务时,除了一个进程之外的所有进程都将被删除,除了挂起的进程.
Application.Run过程调用一个处理Windows消息的无限循环:
repeat
try
HandleMessage;
except
HandleException(Self);
end;
until Terminated;
Run Code Online (Sandbox Code Playgroud)
Terminated
只能通过Application.Terminate
发送PostQuitMesage的过程将该属性设置为true .我想更改消息处理循环,以便我可以使用全局变量直接停止它(不使用消息队列):
var MyTerminated:Boolean
....
repeat
try
HandleMessage;
except
HandleException(Self);
end;
until Terminated or MyTerminated;
Run Code Online (Sandbox Code Playgroud)
问题是,是否可以使程序使用您自己的Application.Run版本?
我有下面的例子。(我的实际项目是一个多线程项目,我为所有项目设置了终止处理程序。)我这里有几个问题。
我的终止处理程序没有做任何花哨的事情。它只是说发生了错误并退出。我读到添加处理程序是一个很好的做法。为什么会这样?在这种情况下我真的需要吗?
如果我没有处理程序,我会得到抛出的异常类型。terminate called after throwing an instance of 'char const*'
但是当我使用处理程序时,我无法获取它。即使我使用 current_exception,我也无法获取异常的类型。(这里显然是 char* 但在我的情况下它可能是任何东西,所以我无法正确捕获。即使我使用 catch{...},消息和类型也会丢失)。无论如何都可以得到消息。如果不是消息,至少我可以获得抛出的异常的类型?
// set_terminate example
#include <iostream>
#include <exception>
#include <cstdlib>
using namespace std;
void myterminate () {
cerr << "terminate handler called\n";
abort(); // forces abnormal termination
}
int main (void) {
//set_terminate (myterminate);
throw "TEST"; // unhandled exception: calls terminate handler
return 0;
Run Code Online (Sandbox Code Playgroud) 在 Linux/POSIX 上相当于
TerminateProcess(GetCurrentProcess(), 0)
Run Code Online (Sandbox Code Playgroud)
我希望能够突然、无序地终止程序,无论我是否在线程中。我不关心析构函数、退出处理程序或优雅终止,我只想完全关闭/终止程序。
我必须包含哪些系统库以及必须使用哪些函数/参数?