我正在使用cmd
.
我想知道是否可以cmd
在运行时分配另一个。
我想使用cmd
来测量进程使用的时间,如果时间超过时间限制,则终止它。
由于这进展不快,我将给出一个标准的在 n 毫秒后退出的方式。它可以很容易地更改为任何时间单位,只需将其设为模板函子(请参阅sleep_for
我的意思的声明)并为其提供std::chrono
单位。
int main() {
std::thread waiter([](unsigned long long milliseconds) {
std::this_thread::sleep_for(std::chrono::milliseconds(milliseconds));
std::exit(0);
}, 5000);
int i{};
while (1) {
std::this_thread::sleep_for(std::chrono::seconds(1));
std::cout << i++ << '\n';
}
}
首先,我使用一个接受毫秒数的过程创建一个线程,并通过传递 5000 毫秒来启动它。我输入参数是为了便于转换到上述函子。它休眠了那么久,然后退出程序。同时,主线程每秒只输出一个计数。
有关演示,请参见此处。这是输出:
0
1
2
3
要启动新的 cmd 窗口,您可以执行以下操作:
cmd.exe /c yourprogram.exe
你也可以使用
start yourprogram.exe
两者都将创建一个新的 cmd.exe 并运行您的程序。如果您的程序是控制台应用程序,第二个(启动)将创建 cmd,否则它将只运行它。