Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuidas teeb MVVMCROSSi käepidemega seotud sündmuste tellimismehhanism keermehalduses


Kuidas teeb MVVMCROSSi käepidemega seotud sündmuste tellimismehhanism keermehalduses


MVVMCrossi sündmuste tellimise mehhanism, peamiselt liidese `imvxmessenger` kaudu, tegeleb lõimehaldusega, pakkudes mitu võimalust teadete edastamise kohta tellijatele. See võimaldab arendajatel juhtida keermestamist, lähtudes nende rakenduse konkreetsetest nõuetest.

Tellimismeetodid

MVVMCROSS pakub kolme peamist meetodit sõnumite tellimiseks, millel kõigil on erinev keermestamismõju:

1. Telli: see meetod edastab sõnumid otse lõime, kus need avaldatakse. Selle töötlemise üldkulud on madalaimad, kuna sõnumid võetakse vastu sünkroonselt. Kuid see nõuab selle lõime hoolikalt kaalumist, millele sõnumi käitleja täidab. Kui käitleja peab UI -ga suhtlema, veenduge, et see töötab kasutajaliidese lõime peal; Vastasel juhul ei pruugi see UI elemente otse värskendada.

2. AlustamisonAinThread: see meetod tagab, et sõnumid on peamise kasutajaliidese lõime külge. See sobib ideaalselt sõnumite käitlejatele, kes peavad täitma UI-ga seotud ülesandeid, kuna see tagab, et käitleja käivitab kasutajaliidese lõime. See on kasutajaliidese elementide värskendamiseks ülioluline, kuna enamik kasutajaliidese raamistikuid nõuab kasutajaliidese värskenduste ilmnemist põhilöögil.

3. See lähenemisviis sobib ressursimahukate ülesannete jaoks, mis ei tohiks blokeerida kasutajaliidest ega sõnumite väljaandjat. See tagab asünkroonse töötlemise, isegi kui teade avaldatakse olemasolevast lõime kogumi lõimest.

Thread Management kaalutlused

Tellimismeetodi valimisel kaaluge järgmist:

- UI värskendused: kui teie sõnumite käitleja peab UI -elemente värskendama, kasutage `manussenMainthread". See tagab kasutajaliidese värskenduste tekkimise õigel lõimel.

-Ressursimahukad ülesanded: ressursimahukad ülesannete jaoks või ei tohiks kasutajaliidese blokeerida, kasutage `tellimisontReadPouthread". See hoiab kasutajaliidese reageerivana, käitledes ülesande asünkroonselt.

- Sünkroonne töötlemine: kui vajate sõnumeid sünkroonseks töötlemiseks ja olete teadlikud lõimest, millele need avaldatakse, kasutage põhilist meetodit `tellimismeetodit.

Lisaparameetrid

Kõik MVVMcrossi tellimismeetodid võimaldavad kahte täiendavat parameetrit:

- MVXREEFERICE: see parameeter täpsustab, kas tellimus peaks kasutama nõrka või tugevat viidet. Nõrgad viited (`mvxreference.weak`) võimaldavad prügikogujal tellimuse eemaldada, kui abonendile enam ei viidatud, samas kui tugevad viited (` mvxreference.strong`) takistab seda, tagades, et tellimus jääb aktiivseks, kuni selgesõnaliselt märkamata.

- Tag: tellimuste kategoriseerimiseks saab esitada valikulise stringi sildi. See on kasulik mitme tellimuse haldamiseks või filtreerimiseks.

Kokkuvõtlikult pakub MVVMCrossi sündmuste tellimismehhanism paindlikke keermehaldusvalikuid, võimaldades arendajatel valida, kuidas sõnumeid edastatakse nende konkreetsete rakendusvajaduste põhjal. See paindlikkus on ülioluline reageeriva kasutajaliidese säilitamiseks ja taustülesannete tõhusaks käitlemiseks.

Tsitaadid:
[1] https://www.mvvmcross.com/documentation/plugins/messenger
[2] https://www.mvvmcross.com/mvvmcross-4.2/
]
[4] https://www.youtube.com/watch?v=hqdvrwwwzkik
[5] https://www.mvvmcross.com/documentation/fundamentals/testing
]
[7] https://docs.prismlibrary.com/docs/event-aggregator.html
]
[9] https://stackoverflow.com/questions/17324650/mvvmcross-multithreading-ins
]