© best_vector/Shutterstock.com
Windows Developer
Möglichkeiten und Einschränkungen in der Windows Runtime

Windows 8 hinter den Kulissen

Für den Endanwender haben Hintergrundprozesse oft einen unangenehmen Nebeneffekt: Sie belasten den Prozessor und verbrauchen dadurch Strom. Die Konsequenz ist Frust durch unerwartet kurze Batterielaufzeit. Das Design von Windows 8 versucht genau das zu verhindern. Das neue Betriebssystem gibt Windows-Store-Apps nur solange vollen Zugriff auf die Ressourcen des Computers, solange sie im Vordergrund sind. Wechselt der Anwender zu einer anderen App, ist Schluss damit. Wenn das für Ihre App nicht ausreicht und Sie auf gewisse Hintergrundprozesse angewiesen sind, gibt es eine gute Neuigkeit: Die Windows Runtime (WinRT) enthält Mechanismen, mit denen Sie als C#-Entwickler unter Einhaltung einiger Limits Aufgaben im Hintergrund erledigen können. Lesen Sie in diesem Artikel, welche Möglichkeiten Sie haben und welche Einschränkungen zu beachten sind.

Rainer Stropek


Video: Deep Dive in die Windows Runtime (WinRT)

Wenn Sie bei der Spezifikation Ihrer Windows-Store-App Anwendungsfälle für Hintergrundprozesse entdecken, gilt es als Erstes zu untersuchen, ob es sich um echte Hintergrundprozesse handelt, oder ob es andere Möglichkeiten zur Umsetzung gibt. Microsoft hat bei der Gestaltung der WinRT eine Reihe von Szenarien für Hintergrundprozesse definiert, die besonders unterstützt werden. Nur wenn Ihr Fall nicht in eines dieser Szenarien passt, sollten Sie einen echten Hintergrundprozess verwenden.

Ansonsten wird empfohlen, das für das jeweilige Szenario vorgesehene API zu verwenden. Im Kasten „Spezielle APIs für Hintergrundverarbeitung“ finden Sie eine Zusammenstellung der speziell unterstützten Szenarien mit Referenz auf die entsprechenden MSDN-Artikel mit näheren Informationen. In diesem Artikel stehen sie nicht im Vordergrund. Wir werden uns in Folge mit echten Hintergrundprozessen auseinandersetzen.

Spezielle APIs für HintergrundverarbeitungDownload oder Upload großer Datenmengen: Wenn Ihre Anwendung große Daten über HTTP oder HTTPS zu übertragen hat, sollten Sie dafür keine eigenen Hintergrundprozesse entwickeln. Verwenden Sie stattdessen die Klassen aus dem Namespace Windows.Networking.BackgroundTransfer. Mit ihrer Hilfe können Sie den Datentransfer starten. Der Transfer selbst wird von Windows 8 unter Berücksichtigung der vorhandenen Systemressourcen erledigt, auch wenn Ihre App beendet wird. Sie haben jederzeit die Möglichkeit, den Status des Transfers (z. B. für eine Fortschrittsanzeige) zu ermitteln.Abspielen von Musik im Hintergrund: Wenn Ihre Anwendung Musik im Hintergrund abspielen soll, können Sie dafür das Windows.UI.Xaml.Controls.MediaElement verwenden. Mit der Eigenschaft AudioCategory können Sie festlegen, dass Sie ein Abspielen der Musik im Hintergrund unterstützen wollen. Ansonsten wird die Musikwiedergabe gestoppt, wenn Ihre App beendet wird. Ein Beispiel für Audiowiedergabe im Hintergrund finden Sie unter [2].Share Contract: Wenn Sie größere Datenmengen über den Share Contract zur Verfügung stellen möchten oder die Vorbereitung dieser Daten länger dauert, enthält die WinRT dafür spezielle APIs. Nähere Informationen dazu finden Sie unter [3].Tiles und Notifications: Live Tiles sind ein wichtiges UI-Design­element in Windows 8. Die Kacheln im Startmenü sollen nicht nur zum Starten Ihrer App dienen, sondern dem Benutzer Informationen über den aktuellen Status der Anwendung bieten. Zum Aktualisi...

Windows Developer
Möglichkeiten und Einschränkungen in der Windows Runtime

Windows 8 hinter den Kulissen

Für den Endanwender haben Hintergrundprozesse oft einen unangenehmen Nebeneffekt: Sie belasten den Prozessor und verbrauchen dadurch Strom. Die Konsequenz ist Frust durch unerwartet kurze Batterielaufzeit. Das Design von Windows 8 versucht genau das zu verhindern. Das neue Betriebssystem gibt Windows-Store-Apps nur solange vollen Zugriff auf die Ressourcen des Computers, solange sie im Vordergrund sind. Wechselt der Anwender zu einer anderen App, ist Schluss damit. Wenn das für Ihre App nicht ausreicht und Sie auf gewisse Hintergrundprozesse angewiesen sind, gibt es eine gute Neuigkeit: Die Windows Runtime (WinRT) enthält Mechanismen, mit denen Sie als C#-Entwickler unter Einhaltung einiger Limits Aufgaben im Hintergrund erledigen können. Lesen Sie in diesem Artikel, welche Möglichkeiten Sie haben und welche Einschränkungen zu beachten sind.

Rainer Stropek


Video: Deep Dive in die Windows Runtime (WinRT)

Wenn Sie bei der Spezifikation Ihrer Windows-Store-App Anwendungsfälle für Hintergrundprozesse entdecken, gilt es als Erstes zu untersuchen, ob es sich um echte Hintergrundprozesse handelt, oder ob es andere Möglichkeiten zur Umsetzung gibt. Microsoft hat bei der Gestaltung der WinRT eine Reihe von Szenarien für Hintergrundprozesse definiert, die besonders unterstützt werden. Nur wenn Ihr Fall nicht in eines dieser Szenarien passt, sollten Sie einen echten Hintergrundprozess verwenden.

Ansonsten wird empfohlen, das für das jeweilige Szenario vorgesehene API zu verwenden. Im Kasten „Spezielle APIs für Hintergrundverarbeitung“ finden Sie eine Zusammenstellung der speziell unterstützten Szenarien mit Referenz auf die entsprechenden MSDN-Artikel mit näheren Informationen. In diesem Artikel stehen sie nicht im Vordergrund. Wir werden uns in Folge mit echten Hintergrundprozessen auseinandersetzen.

Spezielle APIs für HintergrundverarbeitungDownload oder Upload großer Datenmengen: Wenn Ihre Anwendung große Daten über HTTP oder HTTPS zu übertragen hat, sollten Sie dafür keine eigenen Hintergrundprozesse entwickeln. Verwenden Sie stattdessen die Klassen aus dem Namespace Windows.Networking.BackgroundTransfer. Mit ihrer Hilfe können Sie den Datentransfer starten. Der Transfer selbst wird von Windows 8 unter Berücksichtigung der vorhandenen Systemressourcen erledigt, auch wenn Ihre App beendet wird. Sie haben jederzeit die Möglichkeit, den Status des Transfers (z. B. für eine Fortschrittsanzeige) zu ermitteln.Abspielen von Musik im Hintergrund: Wenn Ihre Anwendung Musik im Hintergrund abspielen soll, können Sie dafür das Windows.UI.Xaml.Controls.MediaElement verwenden. Mit der Eigenschaft AudioCategory können Sie festlegen, dass Sie ein Abspielen der Musik im Hintergrund unterstützen wollen. Ansonsten wird die Musikwiedergabe gestoppt, wenn Ihre App beendet wird. Ein Beispiel für Audiowiedergabe im Hintergrund finden Sie unter [2].Share Contract: Wenn Sie größere Datenmengen über den Share Contract zur Verfügung stellen möchten oder die Vorbereitung dieser Daten länger dauert, enthält die WinRT dafür spezielle APIs. Nähere Informationen dazu finden Sie unter [3].Tiles und Notifications: Live Tiles sind ein wichtiges UI-Design­element in Windows 8. Die Kacheln im Startmenü sollen nicht nur zum Starten Ihrer App dienen, sondern dem Benutzer Informationen über den aktuellen Status der Anwendung bieten. Zum Aktualisi...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang