Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak MvvmCross zajistí, že se zprávy neztratí při používání předplatného najevo.


Jak MvvmCross zajistí, že se zprávy neztratí při používání předplatného najevo.


MVVMCross zajišťuje, že zprávy se neztratí při použití `AbsontimThreadPoolThread` implementací mechanismu fronty. Když se přihlásíte k odběru zpráv pomocí `AbcribeOnthreadPoolThread`, všechny příchozí zprávy jsou pro asynchronní zpracování ve frontě ve frontě na vlákno vlákna. Tento přístup zaručuje, že zprávy jsou zpracovávány v pořadí, které jsou přijata, i když vydavatel zpráv a předplatitel jsou na různých vláknech.

Zde je podrobné vysvětlení, jak to funguje:

1. Frorace zpráv: Když je zpráva zveřejněna a předplatitelé používají `předplaťte na odběru, je zpráva přidána do fronty. Tím je zajištěno, že zprávy nejsou ztraceny, i když předplatitel není okamžitě k dispozici pro jejich zpracování.

2. Zpracování fondu vláken: Zprávy ve frontě jsou poté asynchronně zpracovávány podprocesem fondu vlákna. To znamená, že zprávy jsou zpracovávány neblokovacím způsobem, což brání zpoždění uživatelského rozhraní nebo vydavatele.

3. Pořadí zpracování: Zprávy jsou zpracovány v pořadí, v jakém byly přijato. Tím je zajištěno, že pořadí událostí je zachováno, což je zásadní pro udržení integrity stavu aplikace.

4. Slabé odkazy: MVVMCross ve výchozím nastavení používá slabé odkazy pro předplatné, což pomáhá předcházet únikům paměti. Při použití `AdbcribeOnthreadPoolThread` je však nezbytné zajistit, aby byl token předplatného správně uložen, aby se předčasné předplacení předplacené předplatné předplaceno.

5. Tokeny předplatného: Při předplacení se vrátí token, který musí předplatitel uložit. Tento token lze použít k odhlášení z typu zprávy později. Uložení tokenu zajišťuje, že předplatné zůstává aktivní, dokud není výslovně odhlášeno.

Stručně řečeno, MVVMCross zajišťuje, že zprávy se neztratí při použití `předplatného přítvornéhoPoolThread` fronty pro asynchronní zpracování na vláknu vlákna, udržování pořadí zpracování a používání tokenů předplatného pro efektivní řízení předplatných. Tento přístup umožňuje efektivní a spolehlivé zpracování zpráv napříč různými vlákny v aplikaci.

Citace:
[1] https://www.mvvmcross.com/documentation/plugins/messenger
[2] https://stackoverflow.com/questions/17324650/mvvmcross-multithreading-ins
[3] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[4] https://www.youtube.com/watch?v=hqdvrwwzkik
[5] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[6] https://stackoverflow.com/questions/17602137/mvvmcross-how-does-this-View-Get-linkhed-to-theewModel/17602246
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://diglib.tugraz.at/download.php?id=576A78335451d&location=browse
[9] https://stackoverflow.com/questions/37168519/alert-dialog-in-viewModel-mvvmcross