問題タブ [process-exit]
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 - Process.WaitForExit が失敗した直後の EXE の DeleteFile
私は次のことを行います:
実行可能ファイルをにコピーします
C:\temp\x.exe
で実行可能ファイルを開始し、 によって返されたオブジェクト
System.Diagnostics.Process.Start
を呼び出して、プロセスが同期的に終了するのを待ちます。WaitForExit
Process
Start
実行可能ファイルを削除する
C:\temp\x.exe
一部のマシンでは、これはうまく機能しますが、他のマシンでは、ファイルがまだ使用されているため、への呼び出しがDeleteFile
失敗します。したがって、一度WaitForExit
戻ったとしても、Windows が EXE で終了したことを意味するわけではないようです。
ここでのオプションは何ですか? DeleteFile
削除が成功するか、ループがタイムアウトするまで、数ミリ秒後にループで再試行することは明らかです。しかし、ファイルがすべての人によって閉じられるのを待つためのよりクリーンな方法はありますか?
c++ - C言語のループの終了関数で任意の値を使用する理由
C/C++ 言語のループ ステートメントでは、exit(0)、exit(1)、またはその他の値を使用します。その値には何が必要で、ループを終了するときのループ内でのその値の役割は何ですか? exit() の 1 と 0 の意味は何ですか?
linux - Linuxは、プロセスを強制終了したときにスピンロック/セマフォを解放しますか?
プロセスがいくつかのスピンロックまたはセマフォを保持していて、誤って終了した場合(たとえば、Linuxによって強制終了された場合)、Linuxはこれらのロックを正しく解放しますか?Linuxがこの機能を果たさないのなら、なぜですか?
java - 外部プログラムがハングした場合にプロセス (.exec()) を終了する方法
私のソフトウェアを説明しましょう。私のソフトウェアが単純に行うことは、10 個のスレッドを作成し、各スレッドに多数のタスクを割り当てることです。次に、各スレッドは、cmd バッチ ファイルを開始するランタイム プロセスを作成します。このプロセスは、デバイス (約 200 個あります) に telnet 接続して構成をポーリングするプログラムを開始します。私のプロセス作成のコードは次のとおりです。
batchFile
バッチ ファイルのフル パスです。誤解しないでください。ソフトウェアは実行の 100% まで正常に動作し、約 95% で 1 回だけハングしたので、その解決策を見つけようとしています。なぜハングアップしたかは今の問題ではなく、後でハングアップに対処する方法..!
ここでの問題は、プロセスが完了するのを待つ必要があることです。これは、telnet クライアントがファイルに書き込み、後でスレッドで読み取るためです。したがって、の使用.waitFor()
。私の質問は、外部プログラムがハングしたことをスレッドに理解させるにはどうすればよいですか? 言い換えれば、外部プログラムに終了までの時間制限を与えることはできますか? そうでない場合、スレッドはプロセスを強制終了しますか?
また、エラーと出力ストリームの読み取りについて読みました。しかし、ここでは当てはまらないと思いますか?
.net - AppDomain.ProcessExit が呼び出されないのはいつですか?
以下の行を有効//1
にすると、「proc exit」が出力されずにプログラムがクラッシュしますが、行の場合は//2
「proc exit」が出力されます。どちらの場合も「未処理」btwが出力されます。
なぜ違いがあり、一般的なルールは何ですか? 明らかに、タスク マネージャーなどを使用してアプリを強制終了すると、「proc exit」が出力されなくなりますが、それ以外に、出力されないケースは何ですか?
c# - 静的イベント ハンドラーで非静的メンバーにアクセスするにはどうすればよいですか?
私はあなたが通常これを行うことができないことをすでに知っていますが、これが私の状況です:
List<T>
通常の使用中に追加され、間隔を置いてデータベースにダンプされる非静的があります。まだダンプされていないAppDomain.CurrentDomain.ProcessExit
my の値をダンプするために使用できるようにしたいと考えています。List<T>
は、List
ダンプされるたびにクリアされます。
静的であっても、特定のコンテキストなしでこれにアクセスできる方法はありますList
か - >静的ではありませんか?
c# - EventsThreadsShutdown が常に機能するとは限らず、ProcessExit が常に機能する理由
その時点でログデータをファイルに書き込むことができるようにC#
、あらゆるタイプのアプリケーション終了のイベントをキャッチする汎用 (あらゆるアプリケーション) の方法が必要です。C#
が呼び出されてテストしているマルチスレッド C# アプリケーションMicrosoft.Win32.SystemEvents.EventsThreadShutdown
のイベントをキャッチしないことを発見しました。 単純なシングル スレッド アプリケーションで動作します。shutdown
SrcChess2
EventThreadShutdown
AppDomain.CurrentDomain.ProcessExit
その後、マルチスレッド アプリとシングル スレッド アプリで正しく動作するように見えることを発見しました。
EventsThreadsShutdown
常に機能するとは限らず、マルチスレッドアプリケーションで機能しない理由を誰でも説明できますか?
ありがとう!