web-dev-qa-db-ja.com

C#でコンソールアプリケーションを終了します

私はここでstackoverflow、コメント、意見、そしてあらゆる種類のアイデアについて多くのことを読みました。しかしとにかく、カスタムエラーでC#でコンソールアプリケーション(VS2010 Framework 4を使用しています)を終了するための説明された方法が本当に必要です。

私が今読むことができる最高のものはVBにあります:

Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long)

エラーの場合はExitProcess(1)を使用するか、ExitProcess(0)を使用します

だから私の質問は:

  • Environment.Exit(1)と同じですか?
  • 自動ジョブとして実行されるアプリケーションにとって、何が良いですか?
  • 終了コード-1、0、1とはどういう意味ですか、またそれらの違いは何ですか?
  • Static void ExitProcess(uint uExitCode);はどうですか? ?

参考文献としてマークされた以前のいくつかの質問:

C#でコンソールアプリケーションを終了するコマンドは何ですか?

http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx

8
Leandro

あなたはできる:

  1. Environment.Exit(int)を呼び出します
  2. Main関数をintを返すものとして再宣言し、そこから値を返します。
19
AnthonyLambert

1)Environment.Exitはほぼ同じですが、

2)私はWindows自動化サービスを推測しますか?それを試してみてください、しかし私は私が期待通りに働かないと思います...

3)これを見てください Windows Exitcodes

4)いいですが、.Net組み込みメソッドを使用することもできます

3
codeteq

Environment.ExitExitProcessと同じことを行います(さらに、おそらくいくつかの.Netクリーンアップ)-最終結果は同じです。

終了コードに関しては、(理由の範囲内で)必要なものを意味します-0は「成功」、!= 0は「失敗」ですが、0以外の値を使用して、好きなことを意味できます。その値を使用して何か便利なことをするプログラムに。

2
PhonicUK

以下は、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

2
HatSoft

-1。 Environment.Exit(1)と同じですか?

これは.NETであり、windbgを覗き込むことなく、どのWINAPIが実装されているかをほとんど知ることができません。ただし、ExitProcessEnvironment.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
perilbrain

「終了コード-1、0、1とはどういう意味ですか、それらの違いは何ですか?」という質問に答えています。

異なる終了コードは、発信者アプリケーションとステータスを通信するための単なる方法です。たとえば、私が関わったプロジェクトの1つでは、警告コードとして99を使用しました。関係するすべてのアプリケーションが99などを受け取ったときに何をすべきかを知っている限り、それは問題ありません。そのアプリケーションでは、発信者が0または99以外のものを受信した場合、発信者は中止する必要があり、99の場合は自由に続行できます。

0
ebayindir