RONUA
ROmanian .NET User Association --- Asociaţia Romană a Utilizatorilor .NET
Comunitatea dezvoltatorilor software pe .NET Framework
Sleep sau putin Power Management

Subiect relativ asteptat in leagan (cradle) urmeaza somnic (sleep) Smile
Inca nu am rupt legatura cu posturile precedente, sa ne reamintim:
"Sa continuam sa facem aplicatia din blog post precent (http://ronua.ro/CS/blogs/catalin/archive/2009/11/04/let-s-party.aspx) mai buna.
Premisa e o aplicatie pe Windows Mobile care colecteaza/corecteaza date de pe teren (ca storage foloseste SQL Server Compact) si la un moment date sint replicate pe un SQL Server. "

Si problema acum e, daca nu apuca sa faca replicarea ca device intra in sleep mode.
Care problema cu sleep e una din cele mai delicate din lumea asta. De ce? Pai device ruleaza pe baterii deci normal ar fi ASAP sa intre in sleep ca sa conserve energia. DAR sint cazuri in care nu ar fi frumos sa faca asta, de exemplu cind ruleaza un program de navigatie GPS , cind are fisiere deschise in unele situatii pe SD(nu tot timpul e clar ce se va intimpla cu handle la fisier) sau acesate remote. Si la exemple am putea mentiona si cazul cind face o sincronizare Smile.

Care e solutia?
Exista o metoda nativa SystemIdleTimerReset (http://msdn.microsoft.com/en-us/library/aa930260.aspx) care apelata pe un timer (in MSDN e explicat cum se stabileste frecventa timer) nu permite device sa intre in sleep (da in MSDN ii zice suspend). Tot vorbim de Windows Mobile 5.0 or better.
Pe pinvoke (http://www.pinvoke.net/default.aspx/coredll.SystemIdleTimerReset) este explicat cum sa se apeleze in cod managed si e si o discutie relativ pe larg cum se alege frecventa timer si si cu un exemplu foarte clar de folosire.

Insist: mare grija la umblatul la modul sleep, ca ba trebuie sa intre in el ba trebuie evitat. Si un device awake tot timpul isi termina bateria uimitor de repede.
Deci mare grija, mai ales acuma cind stiti sa il tineti "treaz".


Posted Fri, Nov 6 2009 12:03 AM by MrSmersh

(c) RONUA 2004-2009
Powered by Community Server (Commercial Edition), by Telligent Systems