3

MSDN のバックグラウンド タスク コード サンプル (c#) で遊んでいます。コードを少し修正して実行時間を長くしました。これにより、アプリケーションが次に起動されたときにバックグラウンド タスクに「再接続」できるかどうかを確認できます。私のテストでは、アプリケーションが 2 回目に起動されると、バックグラウンド タスクが常に終了することが示されています。テストの詳細は次のとおりです。

バックグラウンド タスクはSystemTriggertypeによってトリガーされ、次のSystemTriggerType.TimeZoneChange場合に期待どおりに動作します。

  1. 最初にアプリケーションを起動してから、TimeZone 設定を変更します。
  2. まず TimeZone を変更してから、アプリケーションを起動します。

しかし、アプリケーションを (ALT+F4 で) 閉じてから、バックグラウンド タスクが完了する前にもう一度起動すると、. バックグラウンド タスクが終了していることは常に確認できます。The program '[920] backgroundTaskHost.exe: Managed (v4.0.30319)' has exited with code 1 (0x1).出力ウィンドウに" " のようなメッセージが表示されることがあります。

アプリケーションが再起動されるたびにバックグラウンド タスクが終了するのはなぜですか? それはデザインですか?それとも、ここで何か不足していますか?

4

2 に答える 2

2

それがプロジェクト参照の問題です。

code 1 (0x1)バックグラウンド タスクの実行時にプログラムを終了した場合は、バックグラウンド タスク プロジェクトを元のプロジェクトの参照に追加する必要があります。

[Windows 8] BackgroundTask に関するクラッシュの問題は、参照を解決する方法を示しています。

于 2012-09-24T13:40:18.730 に答える
1

WinMDC# で BackgroundTask を作成し、Windows 8 RP を使用している場合、プロジェクトの出力タイプをクラス ライブラリではなくファイルに設定する必要があると思います。出力タイプとして WinMD を使用していますか?

于 2012-06-24T10:22:42.027 に答える