5

WinRT は独自の機能を備えているため、WinRT を対象とした Windows サービスを作成するのだろうか? 不可能な場合、非表示の WinRT/Metro アプリケーションを可能にする回避策はありますか?

どうもありがとう。

4

3 に答える 3

5

いいえ、正解です。Metro アプリケーションは、Metro シェル内と、サービスなどのシステム リソースから離れたサンドボックスを作成する実行コンテナー内で実行されます。このため、メトロ アプリはローカル サービスにアクセスできません。同様に、この理由から、メトロ アプリをサービスにすることはできません。

Windows 通知サービスを介したバックグラウンド タスクとプッシュ通知は、Metro アプリがアクティブでないときにユーザーと対話する唯一の方法です。それ以外の場合、アプリケーションがアクティブでない (表示されない) 場合、そのすべてのスレッドが中断されます (サービスとは異なります)。

バックグラウンド タスクに関しては、それらのアクティビティはメトロ アプリと同じように制約され、2 時間ごとに 1 つの CPU 秒に制限されます (1 つの例外があります)。プッシュ通知はより頻繁に実行できますが、タイルの更新またはトースト通知の発生しかできません。

メトロ アプリケーションの目的は、従来のデスクトップ アプリケーションとは異なります。

Metro アプリケーションはアーキテクチャに依存しません (Intel または Arm で実行されます)。メトロ アプリケーションは、タッチ スクリーン用に構築されたタッチ リーチです。メトロ アプリケーションは、完全にハードウェア アクセラレーションされます。メトロ アプリケーションは、前例のないバッテリー寿命など、認定デバイスが提供する次世代ハードウェアを活用します。Metro アプリケーションは、Windows ストアから提供される唯一のアプリケーションです。

ほら、メトロ アプリケーションを選択するということは、デスクトップ アプリケーションの無限のパワーの一部を認めることを意味します。ただし、利益も重要です。

于 2012-06-29T23:20:15.123 に答える
1

いいえ、これは不可能です (サービス、または「見えない」地下鉄アプリケーションを使用しないでください)。

バックグラウンド タスクを実行して目的のタスクを実行できますが、問題を理解していなければ何とも言えません。

于 2012-04-26T12:11:10.380 に答える
0

それはあなたが何をしたいかによります。

WinRT は API であり、Metro (Windows ストア) アプリおよびデスクトップ/C# アプリからアクセスできます。

ただし、完全な API が公開されているわけではありません。ここでアクセスが許可されているものを確認してください。

Hanselman は、WinRT に ref を追加する方法を示しています。

  • csproj を編集します。
<PropertyGroup>
  <TargetPlatformVersion>8.0</TargetPlatformVersion>
</PropertyGroup>
  • 次に、Core/Windows への参照を追加します。

http://www.hanselman.com/blog/HowToCallWinRTAPIsInWindows8FromCDesktopApplicationsWinRTDiagram.aspx

于 2012-11-08T14:37:04.370 に答える