MVVMcrossi sündmuste tellimine on mälulekke ennetamiseks ülioluline ja tagada, et teie rakendus käitub ootuspäraselt. Siin on mõned parimad tavad MVVMCROSS -i sündmuste tellimise tellimiseks:
1. Kasutades `imvxmessenger` **
MVVMCROSS pakub pistikprogrammi `imvxmessenger`, mis võimaldab teil nõrkade viidete abil sündmusi avaldada ja tellida. See tähendab, et kui abonendiobjektile mujal teie koodis enam ei viidatud, kogutakse see prügi ja tellimus eemaldatakse automaatselt. Kui teil on siiski vaja tellimust tühistada, võite kasutada meetodit `imvxmessenger` või helistada` dispose () `meetodil` tellimismoonis, mis on tagastatud meetodil `tellib" [1].
2. tellimismärkide salvestamine **
Sündmuste tellimisel, kasutades `imvxmessenger`, on oluline salvestada tellimislennuk, kui kavatsete käsitsi tellimust tellida. Kui märki ei salvestata ja prügi kogutakse, eemaldatakse tellimus automaatselt. See võib põhjustada ootamatu käitumise, kui tuginete teatud perioodil aktiivse tellimuse [1] [7].
3. Idisposable "** rakendamine
Klasside jaoks, mis tellivad sündmusi, on hea tava rakendamine iDisposable'i liidese rakendamine. Meetodi `Dispose'i” korral saate sündmustest selgesõnaliselt tellida, et tagada ressursside vabastamine, kui objekti enam pole vaja. See lähenemisviis aitab vältida mälulekkeid, tagades sündmuste käitlejate eemaldamise, kui abonent on kõrvaldatud [4] [9].
4.
Veenduge, et tellite sündmused ainult vajadusel ja tellige tellimust enam, kui tellimust enam pole vaja. Vältige sama sündmuse korduvat tellimist ja tellimust tellimist klassi eksemplari elu jooksul, kuna see võib põhjustada tarbetut keerukust ja võimalikke probleeme [4].
5. Nõrgate viidete kasutamine **
MVVMCROSSi `IMVXMESSENGER` kasutab vaikimisi nõrku viiteid, mis võimaldab tellijatel prügi koguda, kui neile mujal teie koodis enam ei viidata. See aitab vältida mälulekkeid, kuid nõuab tellimismärkide hoolikat haldamist, kui on vaja käsitsi sisendamist [1] [3].
6. Rakenduse elutsükli sündmused **
MVVMCROSS -is saate hallata ka rakenduse elutsükliüritusi, näiteks faili `app.xaml.cs`. Kui peate rakenduse väljumisel tegema sündmuste puhastamist või tellimuse tühistamist, on see selleks sobiv koht. Kuid veenduge, et teil oleks vajalike toimingute tegemiseks vajalikke vaatemudeleid või teenuseid [2].
Neid tavasid jälgides saate MVVMcrossi sündmuste tellimusi tõhusalt hallata ja tagada, et teie rakendus püsiks tõhusaks ja mälulekkevabaks.
Tsitaadid:[1] https://www.mvvmcross.com/documentation/plugins/messenger
]
[3] https://prismlibrary.github.io/docs/event-aggregator.html
]
[5] https://www.mvvmcross.com/documentation/fundamentals/navigation
]
]
]
[9] https://dev.to/moh_moh701/c-advanced-unsubscriping-from-events-7ea
]