10

重複の可能性:
Application.Restart() が信頼できないのはなぜですか?

コードはMSDNから直接引用しました。これでアプリケーションが更新されますが、Restart()機能しません。アプリケーションはシャットダウンしますが、再起動しません。

まったく機能することを検証するMenuItemために、私に追加しました:FormRestart()

private void restartToolStripMenuItem_Click(object sender, EventArgs e)
{
    Application.Restart();
}

これにより、アプリケーションが再起動されます (もちろん、更新は実行されず、ユーザーが開始するため、ほとんど役に立ちません)。

私はこのアプリケーションで他に何もしていません。シャットダウン時のフォームのイベント ハンドラーはありません。これは、私が構築できる最も基本的なWindows フォームアプリケーションです (リソースJPEGを .xml に表示するだけImagePanelです)。

Restart()ここで機能しないのはなぜですか?

4

5 に答える 5

5

アプリケーションはWindowsフォームですか、それともWPFですか?Application.Restartこれは、WindowsフォームApplicationオブジェクト(System.Windows.Forms.ApplicationApplication )にのみ存在し、WPF (System.Windows.Applications )で実行されているアプリケーションではサポートされていないためです。それでも呼び出すことができますが、アプリケーションコンテキストが異なるため、機能しません。

于 2009-06-12T20:10:23.633 に答える
4

一度に実行されるアプリケーションのインスタンスが 1 つだけであることを確認するために Mutex などを使用している場合、この問題が発生しています。

于 2009-05-01T19:30:15.150 に答える
1

メインSTAスレッドにない場合に備えて、 BeginInvokeでラップしてみてください。

于 2009-05-20T17:33:18.180 に答える
0

メイン フォームから Application.Restart を呼び出していますか? .ShowDialog を使用してフォームを呼び出し、そのフォームから Application.Restart を呼び出すと、.ShowDialog によってダイアログ フォームが別のスレッドで実行されるため、機能しません。

于 2009-04-23T01:45:37.053 に答える