WEB开发网
开发学院软件开发C语言 【渐进】延迟加载机制的简易实现(上) 阅读

【渐进】延迟加载机制的简易实现(上)

 2010-09-30 21:05:39 来源:WEB开发网   
核心提示: 用户需要实现如上接口来完成正常的数据加载,接下来,【渐进】延迟加载机制的简易实现(上)(3),需要设计一个非延迟加载区域 NotLazyScope:///<summary>///延迟加载区域///</summary>publicclassNotLazyScope:IDis

用户需要实现如上接口来完成正常的数据加载。

接下来,需要设计一个非延迟加载区域 NotLazyScope:

/// <summary>
/// 延迟加载区域
/// </summary>
public class NotLazyScope : IDisposable
{
    /// <summary>
    /// 延迟标记槽
    /// </summary>
    private LocalDataStoreSlot _slot;
    /// <summary>
    /// 延迟标记槽名称
    /// </summary>
    public static readonly string SLOT_NAME = "NotLazy";
    /// <summary>
    /// 声明延迟加载区域
    /// </summary>
    public NotLazyScope()
    {
        this._slot = Thread.GetNamedDataSlot(SLOT_NAME);
        Thread.SetData(this._slot, true);
    }
    /// <summary>
    /// 结束?延?加?区域声明
    /// </summary>
    public void End()
    {
        Thread.SetData(this._slot, false);
    }
 
    #region IDisposable 成员
 
    void IDisposable.Dispose()
    {
        this.End();
    }
 
    #endregion
} 

为了实现如SessionScope的语法声明方式,我们需要在当前的上下文记录一些标记,这里利用了线程栈的数据槽来实现。

上一页  1 2 3 4 5  下一页

Tags:渐进 延迟 加载

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接