9

私はここで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

4

6 に答える 6

21

あなたはできる:

  1. Environment.Exit(int)を呼び出します
  2. Main関数をintを返すものとして再宣言し、そこから値を返します。
于 2012-08-29T14:46:19.677 に答える
3

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

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

3)これを見てください、Windows出口コード

4)それは素晴らしいですが、.Net組み込みメソッドも使用できます

于 2012-08-29T14:48:18.633 に答える
2

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

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

于 2012-08-29T14:43:51.640 に答える
2

以下は、使用する際の質問の1つに固有のExitCodeの一部です。Environment.Exit(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を参照してください。

于 2012-08-29T14:50:25.730 に答える
1

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

これは.NETであり、windbgを覗き込むことなく、どのWINAPIが実装されているかをほとんど知ることができません。ただし、 ExitProcessとの類似性については何も文書化されていませんEnvironment.ExitEnvironment.ExitExitProcess以外のものが含まれている可能性があります。

-2。自動ジョブとして実行されるアプリケーションにとって、何が良いですか?

スケジューラーを使用して自動化されたジョブを実行している場合は、代わりにWindowsサービスを使用するという他のアイデアもあります。これにより、exitprocessの問題が解消されます。

-3。終了コード-1、0、1とはどういう意味ですか、またそれらの違いは何ですか?

これらは、OSに終了の種類を通知するための単なるコードです。return 1プログラマーがエラーまたは成功を指定しているのを見たことがあるかもしれませんreturn 0。これにより、それらのいずれかを自由に使用できるようになります。

-4。static void ExitProcess(uint uExitCode);はどうですか??

アプリケーションで管理されていない呼び出しを自由に使用でき、確かにからの管理アクティビティを見逃すことになりますEnvironment.Exit

于 2012-08-29T15:12:20.867 に答える
0

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

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

于 2012-08-30T06:55:35.853 に答える