Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin形成Android GC循环_C#_Android_Xamarin_Garbage Collection_Xamarin.android - Fatal编程技术网

C# Xamarin形成Android GC循环

C# Xamarin形成Android GC循环,c#,android,xamarin,garbage-collection,xamarin.android,C#,Android,Xamarin,Garbage Collection,Xamarin.android,我使用SQLite.Net异步库缓存SQLite数据库中的实体,因为它们是经常需要的。当我导航到某个页面(如下所述),该页面使用大量绑定来显示实体时,会出现一个“无限”GC循环 要缓存实体,我使用 SQLiteAsyncConnection.Table<T>().ToListAsync() 通过大量的反射和递归来映射每个实体。这个过程似乎相当快 当我导航到有问题的页面时,它会检索缓存的实体并在ListView中显示它们。点击实体时,有关实体的信息应通过绑定显示在屏幕上。当用户点击

我使用SQLite.Net异步库缓存SQLite数据库中的实体,因为它们是经常需要的。当我导航到某个页面(如下所述),该页面使用大量绑定来显示实体时,会出现一个“无限”GC循环

要缓存实体,我使用

SQLiteAsyncConnection.Table<T>().ToListAsync()
通过大量的反射和递归来映射每个实体。这个过程似乎相当快

当我导航到有问题的页面时,它会检索缓存的实体并在ListView中显示它们。点击实体时,有关实体的信息应通过绑定显示在屏幕上。当用户点击屏幕时,循环开始

从杂货店回来后,我发现它还没有完成。

我已经在运行HAXM、2GBRAM、256Heap size和Galaxy选项卡的模拟器上对此进行了测试,我不知道这两个选项卡的类型,它们都有相同的问题(尽管平板电脑可以在循环开始之前处理更多实体)

我知道这可能是不够的信息,我会提供更多,但我只是不知道在哪里寻找或什么可能导致这一点

非常感谢您的帮助


你的,

我终于找到问题了。起初,我认为这与我缓存的实体数量有关,因为问题只有在实体数量达到X时才会出现。当我逐条注释XAML以测试页面为何如此麻烦时,我发现了真正的问题

我创造了一个新的世界来展示发生了什么

TLDR

我运行了多个验证行为,但它们相互冲突。

能否请您分享一个可以重现问题的基本演示?我今天将对此进行研究!
ConcurrentDictionary<Type, IEnumerable<IEntity>>
Parallel.ForEach()