MVMCROSS 앱에서 동시성 문제를 처리하려면 충돌보고 도구가 동시 작업의 영향을받지 않고 효과적으로 충돌을 캡처하고보고 할 수 있도록합니다. 충돌보고 도구 자체는 앱 내 동시성 문제를 직접 처리하지 못할 수 있지만 동시성이 충돌보고에 미치는 영향을 최소화하는 방식으로 통합 될 수 있습니다.
MVVMCross를위한 충돌보고 도구
1. 앱 센터 진단 :이 도구는 Xamarin 및 MVMCross 앱에 대한 포괄적 인 충돌보고 및 분석을 제공합니다. 충돌 로그를 자동으로 생성하고 개발자가 충돌 보고서에 사용자 정의 속성을 추가 할 수있게 해주므로 동시 작업을 추적하는 데 유용 할 수 있습니다 [2] [5].
2. Xamarin Insights : 감가 상각되었지만 한때 Xamarin 앱에서 인기있는 선택이었습니다. 현재 프로젝트의 경우 앱 센터가 권장됩니다.
3. 타사 도구 : Flurry, Sentry 및 Rollbar와 같은 도구는 충돌보고 및 분석을위한 고급 기능을 제공합니다. 동시성 관련 충돌을 효과적으로 처리하기 위해 추가 설정이 필요할 수 있지만 MVVMCross 앱에 통합 될 수 있지만 [9].
mvvmcross의 동시성 처리
MVVMCross 자체는 본질적으로 충돌보고 도구 내에서 동시성 문제를 처리하지 않습니다. 그러나 개발자는 MVVMCross 기능을 사용하여 앱의 동시성을 관리 할 수 있습니다.
-MVXNOTIFYTASK :이 클래스는 비동기 작업을 관리하는 데 도움이되어 예외가 제대로 잡히고 처리되도록합니다. `mvxnotifytask`를 사용함으로써 개발자는 비동기 작업에서 도용되지 않은 예외로 인해 충돌을 방지 할 수 있으며, 이는 동시 환경에서 특히 유용 할 수 있습니다 [8].
- 스레드 안전 :`mvxobservablecollection '과 같은 컬렉션을 처리 할 때 개발자는 충돌을 방지하기 위해 스레드 안전을 보장해야합니다. 여기에는 공유 리소스에 대한 액세스를 동기화하거나 스레드 안전 대안을 사용하는 것이 포함될 수 있습니다 [4].
동시성과 충돌보고 통합
MVMCROSS 앱에서 충돌보고 도구와 함께 동시성 문제를 효과적으로 처리하려면 :
1. 앱 센터 진단 사용 : 앱 센터를 구현하여 충돌을 캡처하고 동시 작업과 관련된 보고서에 사용자 정의 속성을 추가하십시오.
2. 비동기 작업 관리 :`mvxnotifytask`를 사용하여 비동기 작업을 처리하고 충돌로 이어질 수있는 처리되지 않은 예외를 방지합니다.
3. 스레드 안전 보장 : 공유 리소스에 액세스 할 때 스레드 안전 사례를 구현하여 동시성 관련 충돌의 위험을 최소화하십시오.
4. 충돌 보고서 사용자 정의 : 충돌보고 도구가 제공하는 콜백을 사용하여 충돌이 처리되고보고되는 방법을 사용자 정의하여 필요한 경우 동시성 관련 문제를 필터링 할 수 있습니다 [5].
이러한 전략을 통합함으로써 개발자는 MVMCross 앱에서 동시성 문제를 효과적으로 관리하면서 강력한 충돌보고 도구를 활용할 수 있습니다.
인용 :[1] https://stackoverflow.com/questions/19464339/xamarin-mvvmcross-and-crashreporting
[2] https://www.youtube.com/watch?v=jr2fe-wan9c
[3] https://learn.microsoft.com/en-us/archive/msdn-magazine/2008/june/tools-ne-techniques-to-identify-concurrency-issues
[4] https://github.com/mvvmcross/mvvmcross/issues/3165
[5] https://learn.microsoft.com/en-us/appcenter/sdk/crashes/xamarin
[6] https://learn.microsoft.com/en-us/answers/questions/1365675/what-is-is--best-way-to-meplement-concurr
[7] https://stackoverflow.com/questions/59078153/mvvmcross-endroid-10-0-q-mainactivity-crash-on-setcontentview/59558389
[8] https://www.mvvmcross.com/documentation/advanced/mvxnotifytask
[9] https://dev.to/zipy/15-crash-reporting-tools-for-endroid-and-3c95