我在C#中使用Castle ActiveRecord的多线程桌面应用程序出现问题:
为了在根据用户输入搜索对象时保持GUI处于活动状态,我使用BackgroundWorker
作为搜索功能。对象的某些属性(尤其是某些HasMany
- 关系)标记为Lazy
。
现在,当搜索完成并且用户选择结果对象时,应显示此对象的某些属性。但由于BackgroundWorker
在另一个线程中进行了搜索,因此访问属性会失败,因为延迟访问的会话不再可用。
在额外的线程中进行搜索以保持GUI活动并正确访问所有属性(包括那些标记为懒惰的属性)的最佳方法是什么?
感谢您的任何建议!
此致 sc911
答案 0 :(得分:1)
有两种选择:
答案 1 :(得分:1)