を使用してグレーダーに取り組んでいcmd
ます。
実行中に別の割り当てを実行できるかどうかを知りたいですcmd
。
を使用しcmd
て、プロセスが使用する時間を測定し、時間が制限時間を超えた場合は終了したいと考えています。
新しいcmdウィンドウを開始するには、次の操作を実行できます。
cmd.exe /c yourprogram.exe
また、あなたは使用することができます
start yourprogram.exe
どちらも新しいcmd.exeを作成し、プログラムを実行します。2番目(開始)は、プログラムがコンソールアプリケーションの場合は、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';
}
}
まず、ミリ秒数を受け入れるプロシージャーでスレッドを作成し、5000ms を渡して開始します。前述のファンクターへの移行を容易にするためにパラメーターを入れました。それだけ長くスリープしてから、プログラムを終了します。その間、メインスレッドは毎秒カウントを出力するだけです。
デモについては、こちらを参照してください。出力は次のとおりです。
0
1
2
3