WinRT は独自の機能を備えているため、WinRT を対象とした Windows サービスを作成するのだろうか? 不可能な場合、非表示の WinRT/Metro アプリケーションを可能にする回避策はありますか?
どうもありがとう。
WinRT は独自の機能を備えているため、WinRT を対象とした Windows サービスを作成するのだろうか? 不可能な場合、非表示の WinRT/Metro アプリケーションを可能にする回避策はありますか?
どうもありがとう。
いいえ、正解です。Metro アプリケーションは、Metro シェル内と、サービスなどのシステム リソースから離れたサンドボックスを作成する実行コンテナー内で実行されます。このため、メトロ アプリはローカル サービスにアクセスできません。同様に、この理由から、メトロ アプリをサービスにすることはできません。
Windows 通知サービスを介したバックグラウンド タスクとプッシュ通知は、Metro アプリがアクティブでないときにユーザーと対話する唯一の方法です。それ以外の場合、アプリケーションがアクティブでない (表示されない) 場合、そのすべてのスレッドが中断されます (サービスとは異なります)。
バックグラウンド タスクに関しては、それらのアクティビティはメトロ アプリと同じように制約され、2 時間ごとに 1 つの CPU 秒に制限されます (1 つの例外があります)。プッシュ通知はより頻繁に実行できますが、タイルの更新またはトースト通知の発生しかできません。
メトロ アプリケーションの目的は、従来のデスクトップ アプリケーションとは異なります。
Metro アプリケーションはアーキテクチャに依存しません (Intel または Arm で実行されます)。メトロ アプリケーションは、タッチ スクリーン用に構築されたタッチ リーチです。メトロ アプリケーションは、完全にハードウェア アクセラレーションされます。メトロ アプリケーションは、前例のないバッテリー寿命など、認定デバイスが提供する次世代ハードウェアを活用します。Metro アプリケーションは、Windows ストアから提供される唯一のアプリケーションです。
ほら、メトロ アプリケーションを選択するということは、デスクトップ アプリケーションの無限のパワーの一部を認めることを意味します。ただし、利益も重要です。
いいえ、これは不可能です (サービス、または「見えない」地下鉄アプリケーションを使用しないでください)。
バックグラウンド タスクを実行して目的のタスクを実行できますが、問題を理解していなければ何とも言えません。
それはあなたが何をしたいかによります。
WinRT は API であり、Metro (Windows ストア) アプリおよびデスクトップ/C# アプリからアクセスできます。
ただし、完全な API が公開されているわけではありません。ここでアクセスが許可されているものを確認してください。
Hanselman は、WinRT に ref を追加する方法を示しています。
<PropertyGroup> <TargetPlatformVersion>8.0</TargetPlatformVersion> </PropertyGroup>
http://www.hanselman.com/blog/HowToCallWinRTAPIsInWindows8FromCDesktopApplicationsWinRTDiagram.aspx