我们的应用程序的设计要求我们为系统中的每个模块分别设置EntityManagers。为了减轻服务器对公共数据的通信负担,我们实现了一个全局缓存EntityManager,我们导入一组在应用程序生命周期内不会改变的实体。
除了我们导入大量实体时,一切都运行良好。我们的一些屏幕要求我们导入超过5,000个实体,同时我们以异步方式操作,DevForce提供的导入是同步的。在导入过程中,UI线程被阻止的时间长达2-3秒,用户会认为此时已挂起,因为进度指示器无法更新。
我研究了如何配置await以使其不能在UI线程上继续,但是它可以保护DevForce已经到位,以便对EntityManager进行跨线程访问。我知道有一个属性可以设置为禁用此检查但我不确定它是否会在导入操作期间导致任何不利的副作用,所以我对使用它犹豫不决。
如果有其他解决方案或某些秘密酱我不知道,我会非常感谢任何想法。
非常感谢