私はここでstackoverflow、コメント、意見、そしてあらゆる種類のアイデアについて多くのことを読みました。しかしとにかく、カスタムエラーでC#でコンソールアプリケーション(VS2010 Framework 4を使用しています)を終了するための説明された方法が本当に必要です。
私が今読むことができる最高のものはVBにあります:
Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long)
エラーの場合はExitProcess(1)を使用するか、ExitProcess(0)を使用します
だから私の質問は:
参考文献としてマークされた以前のいくつかの質問:
C#でコンソールアプリケーションを終了するコマンドは何ですか?
http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx
あなたはできる:
1)Environment.Exitはほぼ同じですが、
2)私はWindows自動化サービスを推測しますか?それを試してみてください、しかし私は私が期待通りに働かないと思います...
3)これを見てください Windows Exitcodes
4)いいですが、.Net組み込みメソッドを使用することもできます
Environment.Exit
はExitProcess
と同じことを行います(さらに、おそらくいくつかの.Netクリーンアップ)-最終結果は同じです。
終了コードに関しては、(理由の範囲内で)必要なものを意味します-0は「成功」、!= 0は「失敗」ですが、0以外の値を使用して、好きなことを意味できます。その値を使用して何か便利なことをするプログラムに。
以下は、Environment.Exit(ExitCode)
を使用する際の質問の1つに固有のExitCodeの一部です。
ERROR_SUCCESS
0 (0x0)
The operation completed successfully.
ERROR_INVALID_FUNCTION
1 (0x1)
Incorrect function.
ERROR_FILE_NOT_FOUND
2 (0x2)
The system cannot find the file specified.
詳細を含むExitCodeの詳細については、こちらを参照してください http://msdn.Microsoft.com/en-us/library/windows/desktop/ms681382(v = vs.85).aspx
-1。 Environment.Exit(1)と同じですか?
これは.NETであり、windbgを覗き込むことなく、どのWINAPIが実装されているかをほとんど知ることができません。ただし、ExitProcess
とEnvironment.Exit
.Environment.Exit
の類似性については何も文書化されていません。 ExitProcess以外のものが含まれる場合があります。
-2。 自動ジョブとして実行されるアプリケーションにとって何が良いですか?
スケジューラーを使用して自動化されたジョブを実行している場合は、代わりにWindowsサービスを使用するという他のアイデアもあります。これにより、exitprocessの問題が解消されます。
-3。 終了コード-1、0、1とはどういう意味ですか、それらの違いは何ですか?
これらは、OSに終了の種類を通知するための単なるコードです。プログラマーがエラーの場合はreturn 1
を、成功の場合はreturn 0
を指定しているのを見たことがあるかもしれません。これにより、これらのいずれかを自由に使用できます。
-4。 static void ExitProcess(uint uExitCode);?
アプリケーションでアンマネージドコールを自由に使用でき、Environment.Exit
からの管理アクティビティを見逃すことは確かです。
「終了コード-1、0、1とはどういう意味ですか、それらの違いは何ですか?」という質問に答えています。
異なる終了コードは、発信者アプリケーションとステータスを通信するための単なる方法です。たとえば、私が関わったプロジェクトの1つでは、警告コードとして99を使用しました。関係するすべてのアプリケーションが99などを受け取ったときに何をすべきかを知っている限り、それは問題ありません。そのアプリケーションでは、発信者が0または99以外のものを受信した場合、発信者は中止する必要があり、99の場合は自由に続行できます。