私はWindowsストアに公開されているWindows 8.1/windows phone 8.1(WinRT)アプリケーションを持っています。アプリはイベントハンドラを使用して重要なアプリの状態と統計をファイルのセットに保存します(理由のために組み込みの設定APIは使用しません)。 「良い男の子」になるために、私はWindows.ApplicationModel.SuspendingOperation.Deadline
に従い、Windows.ApplicationModel.SuspendingOperation.GetDeferral()
を可能な限り明示的に呼びます。Windows Phone 8.1(WinRT)およびWindows Phone 10(UWP)アプリケーションの一時停止手順
ここでの質問は以下のとおりです。
はは、私は右の私が締め切りの瞬間の前に
Windows.ApplicationModel.SuspendingDeferral.Complete()
メソッドを呼び出す必要があること、それを得るのですか?締め切り前に電話することができない場合は、罰則はありますか?私のアプリは、システムの目を見張るような視点から「無反応」になっていますか?
Windows.ApplicationModel.SuspendingDeferral.Complete()
が呼び出された瞬間にまだ実行中のスレッドはどうなりますか?彼らは凍っているのだろうか?「async」スレッド、つまり暗黙のTPLスレッドまたは
ThreadPool.RunAsync
とUIスレッドがアプリケーションの中断中に動作に違いはありますか?Windows.ApplicationModel.SuspendingDeferral.Complete()
を呼び出す前に、すべての非同期タスク、つまりSystem.Threading.Tasks.Task
インスタンスを明示的にキャンセルする必要がありますか?
いい記事をありがとう。それは私のアプリケーションは、延期を取得し、締め切り前に完全なメソッドを呼び出さない場合は終了するつもりだが、締め切り前に私の仕事を終了することについて何も言わない。それは、私の既存のスレッドは、サスペンド時には終了せずに凍結するつもりであると言います。 「締め切り前に仕事を終わらせなければ、あなたのアプリは終了する」とはどういう意味ですか? –
締め切りになると、スレッドが停止して固定されます。 – crea7or
もう一度、「締め切り前に仕事を終えて、あなたのアプリは終了する」と言ってどういう意味ですか? –