4

で記述されたアプリケーションWindows CE 6.0を使用して、ARM プロセッサ デバイスで実行しています。.NET CF 2.0 SP2C#

アプリケーションを閉じた後も実行し続けるという問題が発生しています。アプリケーションは、デバイスに接続されている何かとの接続を開き、適切に閉じるまで解放しません。このため、実行中のアプリケーションを再度開いて使用することはできません。また、接続されたデバイスを使用したい他のアプリケーションを実行することもできません。

実行しようとしましたがApplication.Exit()、すべてのスレッドにIsBackgroundプロパティが設定されていますtrueが、これは機能しません。アプリケーションを閉じた後、タスク マネージャーを使用して、プロセスが引き続き実行されていることを確認できます。

通常は使用しますEnvironment.Exit()が、残念ながらこれは CF では使用できません。

私が試して使用できる方法、またはこれを実現する原因はありますか?

ありがとう。

4

3 に答える 3

1

まだこれに苦労している人のために:

問題は、Windows CE / WEHH / .NET Compact では、フォームの X ボタンを押してもアプリケーションが終了せず、最小化されるだけであることがわかりました (つまり、終了イベントが呼び出されません)。

このページの回答の 1 つに従って、フォーム プロパティ 'MinimizeBox' を false に設定することで、閉じるボタンを実際にアプリケーションを終了するように変更できます。

this.MinimizeBox = false;

これにより、X ボタンが OK ボタンに変わり、アプリケーションが完全に終了します。

于 2016-01-17T23:36:56.067 に答える
0

これが役立つかもしれません。Application.exit()を呼び出す前に、スレッドの Background プロパティをfalseに設定します。

private void BtnExit_Click(object sender, EventArgs e)
{
  Thread1.IsBackground = false;
  Thread2.IsBackground = false;

  Application.exit();
}
于 2014-12-29T12:10:25.967 に答える