在IIS中开启WebDAV
- 安装“WebDAV 发布”
- 启用 WebDAV 并添加创作规则
- 添加创作规则
- “身份验证”开启“Windows 身份验证”
- "授权"账户
Microsoft Visual C++ 2005 Redistributable Package (32位)
http://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x86.exeMicrosoft Visual C++ 2005 Redistributable Package (64位)
http://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x64.exeMicrosoft Visual C++ 2008 Redistributable Package (32位)
https://download.microsoft.com/download/9/7/7/977B481A-7BA6-4E30-AC40-ED51EB2028F2/vcredist_x86.exeMicrosoft Visual C++ 2008 Redistributable Package (64位)
https://download.microsoft.com/download/9/7/7/977B481A-7BA6-4E30-AC40-ED51EB2028F2/vcredist_x64.exeMicrosoft Visual C++ 2010 SP1 Redistributable Package (32位)
https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x86.exeMicrosoft Visual C++ 2010 SP1 Redistributable Package (64位)
https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x64.exeMicrosoft Visual C++ 2012 Redistributable (x64)
https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exeMicrosoft Visual C++ 2012 Redistributable (x86)
https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exeVisual C++ Redistributable for Visual Studio 2012 Update 4 (32位)
https://download.microsoft.com/download/9/C/D/9CD480DC-0301-41B0-AAAB-FE9AC1F60237/VSU4/vcredist_x86.exeVisual C++ Redistributable for Visual Studio 2012 Update 4 (64位)
https://download.microsoft.com/download/9/C/D/9CD480DC-0301-41B0-AAAB-FE9AC1F60237/VSU4/vcredist_x64.exeVisual C++ Redistributable Packages for Visual Studio 2013 (32位)
https://download.microsoft.com/download/F/3/5/F3500770-8A08-488E-94B6-17A1E1DD526F/vcredist_x86.exeVisual C++ Redistributable Packages for Visual Studio 2013 (64位)
https://download.microsoft.com/download/F/3/5/F3500770-8A08-488E-94B6-17A1E1DD526F/vcredist_x64.exeVisual Studio 2015, 2017, 2019, and 2022 (32位)
https://aka.ms/vs/17/release/vc_redist.x86.exeVisual Studio 2015, 2017, 2019, and 2022 (64位)
https://aka.ms/vs/17/release/vc_redist.x64.exe 场景:
在一个工厂ERP管理系统中,有部分实体的界面需要显示相关联的其它信息,而这部分信息是弱连接的,需要调用WebAPI取回,传统的方式是一一取回,结果是用户感知的速度达不到要求。
使用BackgroundWorker,在后台取资料,取完资料后再显示,如果取资料的过程中,主实体已经变更了,或者已多次变更了,则等上次任务完成后,直接再取最后一次变更的资料,中间的直接丢弃,既加快了速度,也节省了资源。
实现思路:
先加入BackgroundWorker,(命名如:BackgroundWorker_ShowItem)。
再定义两个变量,用于保存要显示的主实体(或其关联键)
private T Item = null;
private T NextItem = null;当需要显示一个主体的内容时,不直接显示,而是呼叫BackgroundWorker来处理
public void ShowItem(T item)
{
if (BackgroundWorker_ShowItem.IsBusy)
{
this.NextItem = item;
}
else
{
this.Item = item;
this.BackgroundWorker_ShowItem.RunWorkerAsync();
}
}
private void BackgroundWorker_ShowItem_DoWork(object sender, DoWorkEventArgs e)
{
this.ShowItem();
}
private void BackgroundWorker_ShowItem_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (this.NextItem != null)
{
var nextItem = this.NextItem;
this.NextItem = null;
this.ShowItem(nextItem);
}
}注意,当ShowItem()中有访问前端时,会报“线程间操作无效”的例外,需要使用Invoke,但不要在DoWork中将ShowItem()全部包含,而应该在ShowItem()中单独处理。否则达不到性能优化的效果。