2012-04-26 20 views
5

WinRTには独自の機能があるので、WinRTを対象としたWindowsサービスを作成することになったのでしょうか?可能でない場合は、目に見えないWinRT/Metroアプリケーションを可能にする回避策ですか?WinRTサービスを作成することは可能ですか

ありがとうございます。

+1

私は非常にそれを疑います。何をしたいですか? – SLaks

+0

標準の.NETで提供されていないいくつかの機能を使用したいと思うし、あまりにも複雑なネイティブC++ APIを呼びたくない。 – user1343145

+2

@ user1343145 .NETで問題を解決するだけでなく、ネイティブコードを使用したくない場合は、何を使用しますか? –

答えて

1

これは可能ではありません(サービスまたは "不可視"のメトロアプリケーション)。

私が言うことができなかったあなたの問題を理解することなく、後のことをするかもしれないバックグラウンドタスクを実行することができます。

5

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

Windows Notification Servicesによるバックグラウンドタスクとプッシュ通知は、メトロアプリケーションがアクティブではない間にユーザーと対話する唯一の方法です。それ以外の場合、アプリケーションがアクティブではない(可視ではない)場合、そのスレッドのすべてが中断されます(サービスとは異なります)。

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

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

メトロアプリケーションは、アーキテクチャ(Intelまたはアーム上で実行)独立しています。メトロアプリケーションは、タッチスクリーン用に構築されたタッチリーチです。メトロアプリケーションは完全にハードウェアアクセラレーションされています。メトロアプリケーションは、認知されたデバイスが提供する次世代のハードウェアを活用しています。メトロアプリケーションは、Windowsストアによって提供される唯一のアプリケーションです。

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

+0

WinRT!= Metro。 – laktak

0

あなたのやりたいことによって異なります。

WinRTはMetro(Windows Store)アプリとDesktop/C#アプリからアクセスできるAPIです。しかし、完全なAPIが公開されていない

- あなたがここにアクセスすることを許可されているものを参照してください:http://msdn.microsoft.com/en-us/library/windows/desktop/hh920511%28v=vs.85%29.aspx

Hanselman氏はWinRTのに参照を追加する方法を示しています。

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

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

関連する問題