Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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# 同一类中的延迟加载和急切加载行为_C# - Fatal编程技术网

C# 同一类中的延迟加载和急切加载行为

C# 同一类中的延迟加载和急切加载行为,c#,C#,我有一个从非数据库源加载大量子集合的框架。我最近得到了一个用例,其中资源位于网络驱动器上,加载集合需要花费很长时间。我仍然需要支持渴望加载场景,但现在需要添加延迟加载 我已经把这个问题的解决方案添加到了书签中,但是现在我找不到那个链接。到目前为止,谷歌还没有返回任何可用的链接。第一个反应是只向构造函数添加一个布尔参数。我知道这是一种糟糕的“代码气味”,我记得答案是不同的 有人能给我指点如何解决这个问题的方法吗 更多信息: 集合是垂直的,而不是水平的。这就是为什么在后台加载在这种特定情况下不起作用

我有一个从非数据库源加载大量子集合的框架。我最近得到了一个用例,其中资源位于网络驱动器上,加载集合需要花费很长时间。我仍然需要支持渴望加载场景,但现在需要添加延迟加载

我已经把这个问题的解决方案添加到了书签中,但是现在我找不到那个链接。到目前为止,谷歌还没有返回任何可用的链接。第一个反应是只向构造函数添加一个布尔参数。我知道这是一种糟糕的“代码气味”,我记得答案是不同的

有人能给我指点如何解决这个问题的方法吗

更多信息:


集合是垂直的,而不是水平的。这就是为什么在后台加载在这种特定情况下不起作用。该数据以类似于文件夹的层次结构存储。我见过一些结构可以达到10层的深度。

是的,构造函数中的布尔值肯定是一种糟糕的代码味道。但是,我还要说,更改类以支持延迟加载也是一种代码味道,因为它违反了封装的一些基本原则(即,您的类是否应该知道或关心资源是否位于网络驱动器上?)


你不应该换课。相反,请更改使用类的代码,以便它在后台线程中检索数据。

解决方案比我想象的要简单。我只是混合了不同层次的模式。我的意思是,我在最上面的水平集合中使用了渴望加载,并将下面的任何内容转换为延迟加载

它工作得非常好。现在,使用此框架的UI响应速度非常快