Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A kiterjesztett végrehajtási munkamenetek lehetővé teszik az alkalmazás számára, hogy kérje, hogy a rendszer futtasson bizonyos helyzetekben, még akkor is, ha egyébként erőforrás-csökkentésre lenne alkalmas az akkumulátorral működő eszközökön. Bár az asztali alkalmazások nincsenek automatikusan felfüggesztve, a kiterjesztett végrehajtás továbbra is hasznos a rendszer felé irányuló szándék jelzéséhez.
Important
Az asztali alkalmazások továbbra is futnak, függetlenül attól, hogy kiterjesztett végrehajtást használnak-e. A ExtendedExecutionSession elsődleges előnye asztali alkalmazásokban az, hogy jelzi a rendszernek: az Ön munkája fontos, ezért azt nem szakíthatják meg az olyan energiatakarékossági funkciók, mint a Modern Standby vagy az akkumulátorkímélő.
Mikor érdemes kiterjesztett végrehajtást használni?
A kiterjesztett végrehajtási munkamenetek a leginkább hasznosak az asztali alkalmazásokban a következőkhöz:
- Kritikus adatok mentése – Annak biztosítása, hogy egy nagy mentési művelet befejeződjön, mielőtt az eszköz készenléti állapotba lép.
- Helykövetés – A GPS-adatok folyamatos áramlása, miközben az alkalmazás minimálisra csökken egy laptopon.
- Hosszú ideig futó számítások – Renderelési, fordítási vagy adatelemzési feladatok elvégzése.
Olyan helyzetekben, amikor az asztali alkalmazásnak egyszerűen tovább kell futnia (például csevegőalkalmazást vagy zenelejátszót), nincs szükség kiterjesztett végrehajtásra – az alkalmazás továbbra is a szokásos módon fut.
Kiterjesztett végrehajtási munkamenet létrehozása
Használja az ExtendedExecutionSession osztályt :
using Windows.ApplicationModel.ExtendedExecution;
private ExtendedExecutionSession? _session;
private async Task StartExtendedSessionAsync()
{
var session = new ExtendedExecutionSession
{
Reason = ExtendedExecutionReason.Unspecified,
Description = "Completing critical data save"
};
session.Revoked += ExtendedSession_Revoked;
ExtendedExecutionResult result = await session.RequestExtensionAsync();
if (result == ExtendedExecutionResult.Allowed)
{
_session = session;
// Proceed with the long-running work
}
else
{
session.Dispose();
// The system denied the request — handle gracefully
}
}
private void ExtendedSession_Revoked(object sender,
ExtendedExecutionRevokedEventArgs args)
{
// The session was revoked. Save state quickly.
if (args.Reason == ExtendedExecutionRevokedReason.SystemPolicy)
{
// System needs resources — wrap up immediately
}
}
A kiterjesztett végrehajtás okai
| Reason | Felhasználási eset |
|---|---|
SavingData |
Az alkalmazásnak végre kell hajtania egy mentési műveletet |
LocationTracking |
Az alkalmazás nyomon követi a felhasználó tartózkodási helyét |
Unspecified |
Egyéb hosszú ideig futó munka |
Note
A(z) LocationTracking használatához az alkalmazás jegyzékében megadott location képességre és a felhasználó hozzájárulására van szükség.
A munkamenet befejezése
Amikor a feladat befejeződik, a kérés felszabadításához szüntesse meg a munkamenetet:
private ExtendedExecutionSession? _session;
private void ExtendedSession_Revoked(object sender,
ExtendedExecutionRevokedEventArgs args)
{
}
private void StopExtendedSession()
{
if (_session != null)
{
_session.Revoked -= ExtendedSession_Revoked;
_session.Dispose();
_session = null;
}
}
Különbségek az UWP-től
| Magatartás | UWP | Munkaasztal |
|---|---|---|
| Alkalmazás célja | Megakadályozza a felfüggesztést | Jelzi a fontosságot az energiagazdálkodás számára |
| Az alkalmazás továbbra is fut nélküle | Nem – Az UWP-alkalmazások felfüggesztése | Igen – az asztali alkalmazások normál módon futnak |
| Munkamenet visszavonása | Felfüggesztést okozhat | Nem állítja le az alkalmazást, de energiatakarékosságra lehet szükség |
SavingData Ok |
Megakadályozza a mentés közbeni felfüggesztést | Ugyanaz az API, kevésbé kritikus, mivel az alkalmazás nem függeszt fel |
Bevált gyakorlatok
- Csak akkor kérje a kiterjesztett végrehajtást, ha olyan konkrét munkával rendelkezik, amelyet nem szabad megszakítani az energiatakarékosság miatt.
- Mindig kezelje az eseményt
Revoked, még asztali alkalmazásokban is. - Amint befejezte a munkát, azonnal szüntesse meg a munkamenetet.
- Ne tartson hosszabb munkamenetet határozatlan ideig – ez hatással lehet az eszköz akkumulátorának üzemidejére.
Kapcsolódó tartalom
Windows developer