分享程序员开发的那些事...
首页
NTFS
漏洞
Android
Magento
服务器
Python
powershell
技术问答
Linux
网站首页
且构网 - 分享程序员编程开发的那些事
您所在的位置:
首页
>
Enterprise Library 2.0 Hands On Lab 翻译(11):缓存应用程序块(三)
Enterprise Library 2.0 Hands On Lab 翻译(11):缓存应用程序块(三)
更新时间:2022-04-02 06:35:25
练习
3
:实现后台缓存
该练习将示范如何实现后台加载。
第一步
打开
EmployeeBrowser.sln
项目,默认的安装路径应该为
C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Caching\exercises\ex03\begin
,并编译。
第二步 实现后台加载
1
.在解决方案管理器中选择
EmployeeServices.cs
文件,选择
View | Code
菜单命令,添加如下两个方法,它们将实现在后台加载缓存。
//
TODO: PopulateCache & BeginBackgroundLoad
private
static
void
PopulateCache()
{
byte
[] photoData
=
null
;
EmployeesDataSet dsEmployees
=
GetContactDetails();
if
(dsEmployees
==
null
)
return
;
CacheManager cache
=
CacheFactory.GetCacheManager();
foreach
(EmployeesDataSet.EmployeesRow employee
in
dsEmployees.Employees)
{
if
(
!
cache.Contains(employee.EmployeeID.ToString()))
{
EmployeeDataProvider dataProvider
=
new
EmployeeDataProvider();
photoData
=
dataProvider.GetEmployeePhotoData(employee.EmployeeID);
cache.Add(employee.EmployeeID.ToString(), photoData);
}
}
}
private
delegate
void
PopulateCacheDelegate();
public
static
void
BeginBackgroundLoad()
{
if
(
!
ConnectionManager.IsOnline)
return
;
PopulateCacheDelegate mi
=
new
PopulateCacheDelegate(PopulateCache);
mi.BeginInvoke(
null
,
null
);
}
BeginBackgroundLoad
方法使用一个委托在后台线程开始
PopulateCache
方法,它将会被
.NET
工作线程处理。
2
.选择
MainForm.cs
文件,选择
View | Code
菜单命令,在方法
MainForm_Load
中加入如下代码开始后台工作。
private
void
MainForm_Load(
object
sender, EventArgs e)
{
this
.ToolStripLabel1.Text
=
ConnectionManager.StatusText;
//
Load data into the 'EmployeesDataSet'.
EmployeesDataSet tempDataset
=
EmployeeService.GetContactDetails();
if
(tempDataset
!=
null
)
this
.EmployeesDataSet.Merge(tempDataset);
//
TODO: Start loading cache in the background
EmployeeService.BeginBackgroundLoad();
}
第三步 运行应用程序
1
.选择
Debug | Start Without Debugging
菜单命令运行应用程序。
不要浏览任何雇员数据,在等待大概
10
秒后退出应用程序。如果应用程序在线它将尝试后台加载雇员照片,缓存存储在物理存储位置上,即持久缓存,但是与前一个练习使用了不同的
PartitionName
。
2
.在解决方案管理器中选择
ConnectionManager.cs
,选择
View | Code
菜单命令,在下面的代码中修改
IsOnlin
e
属性的值。
static
public
bool
IsOnline
{
get
{
return
false
; }
}
3
.选择
Debug | Start Without Debugging
菜单命令运行应用程序。现在应用程序不再连接数据库处于离线状态,所有的雇员信息已经照片已经被缓存。
更多
Enterprise Library
的文章请参考《
Enterprise Library
系列文章
》
本文转自lihuijun51CTO博客,原文链接:
http://blog.51cto.com/terrylee/67642
,如需转载请自行联系原作者
上一篇 : :centos 7下安装配置dubbo-admin
下一篇 : redis 慢查询日志
相关阅读
Enterprise Library 2.0 Hands On Lab 翻译(11):缓存应用程序块(三)
推荐文章
关于PHP你可能不知道的10件事
PHP中的串行化变量和序列化对象
PHP中::、->、self、$this操作符的区别
PHP100精华:PHP打印函数集合
PHP初学者常见问题集
周排行、月排行榜开发总结
PHP中基本符号及使用方法
PHP获取客户端、PHP获取服务器相关信息
关于PHP开发编码规范
shellcode