1

私はすでにユーザーベースで動作するアプリケーションを作成しました。現在のユーザーのログアウトに使用する最良の方法を探していました。だから私は Application.Restart(); すぐに使用しましたが、コードが正しく機能Program.Main()せず、再度コールバックしないことがわかりました。ログインフォームのロードメソッドが実行されないのではないかと思いました(ログインフォームはプログラムクラスから呼び出しています)。

ですから、私のバグと正しい解決策について教えていただければ本当にありがたいです。

4

3 に答える 3

6

http://msdn.microsoft.com/en-us/library/system.windows.forms.application.restart.aspx

コメントには「VS2010SP1のバグ」と記載されています

このメソッドを呼び出した後、アプリケーションはデバッグモードで実行されなくなり、IDEによって生成されず、すべてのブレークポイントが機能を停止します。

編集: これは、log4netのようなものが本当に役立つ場合がある場所です。これはプロジェクトに追加する非常にシンプルなライブラリであり、デバッグ情報をファイルに書き出すことができるため、次のインスタンスがIDEによって生成されておらず、ブレークポイントを取得しない場合でも、それが何に到達しているかを確認できます。デバッグトレースを使用することで期待できます。ただの提案...

于 2012-05-14T15:53:44.130 に答える
2

新しいプロセスが作成され、IDEによって生成されません。

ブレークポイントは、が再度入力されたかどうかをテストするための有効な方法ではありませんMain

関連する投稿を参照してください: Application.Restart()は、アプリケーションの新しいプロセスを作成しますか、それとも作成しませんか?

必要に応じて、ファイルに書き込んだり、他の簡単なテストを行って、ファイルMainが入力されたことを自分自身に証明することもできます。

于 2012-05-14T15:54:52.277 に答える
0

Application.Restart()Microsoftは最近、Power Toolの形式で、デバッグを続行できるソリューションをリリースしました。

子プロセスデバッグパワーツール

于 2015-04-16T17:53:57.763 に答える