System.Web.HttpContext.Current.Cache和System.Web.HttpRuntime.Cache有什么区别?

ASP.NET五大核心对象:HttpRuntime、HttpContext、HttpRequest、HttpResponse、HttpServerUtility深度解析 HTTP服务器开发的核心范式围绕请求(Request)、响应(Response)和上下文(Context)三大抽象展开,这是Java Servlet、Node.js Express、Python Flask与ASP.NET共通的基础模型。在ASP.NET中,HttpRuntime作为运行时调度中枢,HttpContext承载单次请求全生命周期状态,HttpRequest与HttpResponse分别实现协议解码与输出组装,HttpServerUtility则提供HtmlEncode、UrlEncode等安全 阅读详情

来自:http://www.cnblogs.com/qiantuwuliang/archive/2009/12/28/1634571.html

 System.Web.HttpContext.Current.Cache 属性 ----->是个"属性值"

System.Web.HttpRuntime.Cache 属性--------------->是个"属性值"

System.Web.Caching.Cache webCache=***-------->是个"类"

比如: protected static volatile System.Web.Caching.Cache webCache = System.Web.HttpRuntime.Cache;

==================================================

Asp.Net中可以方便的使用缓存,对于Cache,一般有两种方式调用:HttpContext.Cache和HttpRuntime.Cache。那么这两种Cache有什么区别呢?

先来看看Msdn上的注释:
HttpRuntime.Cache:获取当前应用程序的 Cache。
HttpContext.Current.Cache:为当前 HTTP 请求获取 Cache 对象。

那么是不是说对于HttpRuntime.Cache就是应用程序级,而HttpContext.Cache则是针对每个用户的呢?NO,而实际上,两者调用的是同一个对象。他们的区别仅仅在于调用方式不一样(就我所知)。

事实胜过雄辩,写个例子来证实一下(限于篇幅仅贴出关键代码,完整代码见附件WebDemo.rar):

 

代码 

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->  /**//// <summary>
        /// 通过HttpRuntime.Cache的方式来保存Cache
        /// </summary>
        private void btnHttpRuntimeCacheSave_Click(object sender, System.EventArgs e)
        {
            HttpRuntime.Cache.Insert(cacheKey, cacheValue, null, DateTime.Now.AddMinutes(3), TimeSpan.Zero);
        }

        /**//// <summary>
        /// 通过HttpRuntime.Cache的方式来读取Cache
        /// </summary>
        private void btnHttpRuntimeCacheLoad_Click(object sender, System.EventArgs e)
        {
            if (HttpRuntime.Cache[cacheKey] == null)
            {
                cacheContent = "No Cache";
            }
            else
            {
                cacheContent = (string)HttpRuntime.Cache[cacheKey];
            }
            lblCacheContent.Text = cacheContent;
        }

        /**//// <summary>
        /// 通过HttpContext.Cache的方式来保存Cache
        /// </summary>
        private void btnHttpContextCacheSave_Click(object sender, System.EventArgs e)
        {
            HttpContext.Current.Cache.Insert(cacheKey, cacheValue, null, DateTime.Now.AddMinutes(3), TimeSpan.Zero);
        }

        /**//// <summary>
        /// 通过HttpContext.Cache的方式来读取Cache
        /// </summary>
        private void btnHttpContextCacheLoad_Click(object sender, System.EventArgs e)
        {
            if (HttpContext.Current.Cache[cacheKey] == null)
            {
                cacheContent = "No Cache";
            }
            else
            {
                cacheContent = (string)HttpContext.Current.Cache[cacheKey];
            }
            lblCacheContent.Text = cacheContent;
        }


 

通过这个例子可以很容易证明:

  1. HttpContext.Current.Cache保存的Cache,HttpContext.Current.Cache和HttpRuntime.Cache都可以读取。
  2. HttpRuntime.Cache保存的Cache,HttpContext.Current.Cache和HttpRuntime.Cache都可以读取。
  3. 无论是哪个用户通过什么方式对Cache的改变,其他用户无论用什么方式读取的Cache内容也会随之变。

转自:http://blog.joycode.com/dotey/archive/2005/01/15/43091.aspx

留言反馈:

===================================================

1、HttpRuntime.Cache 相当于就是一个缓存具体实现类,这个类虽然被放在了 System.Web 命名空间下了。但是非 Web 应用也是可以拿来用的。
2、HttpContext.Current.Cache 是对上述缓存类的封装,由于封装到了 HttpContext ,局限于只能在知道 HttpContext 下使用,即只能用于 Web 应用。

===================================================

这个测试等于废话!

还是这句话说得对!

在HttpContext里定义cache只是为了使用方便。在某些情况下,HttpContext还没被创建出来,就只能用HttpRuntime.Cache。

===================================================

已经有人说过这个话题,相关链接: HttpRuntime.Cache vs. HttpContext.Current.Cache
http://weblogs.asp.net/pjohnson/archive/2006/02/06/437559.aspx

===================================================

好像搂主说的不对。你的Demo代码无法下载,我也无法验证。

先来看看Msdn上的注释:
HttpRuntime.Cache:获取当前应用程序的 Cache。
HttpContext.Cache:为当前 HTTP 请求获取 Cache 对象。

Msdn上的注释 是对的。

我自己测试过,如果使用不同的Session访问HttpContext.Current.Cache,结果不一样;但是HttpRuntime.Cache 是一样的。

===================================================

两个东西调用的对象确实是同一个,这个估计是为了方便调用的,但是HttpRuntime.Cache在Web程序里是去对能调用的,而HttpContext.Cache就不一定了,因为.net不是请求级别的程序,有些代码是在HttpContext.Current为空的情况下执行,这个时候就只能用HttpRuntime.Cache了

===================================================

两个Cache是一样的,只是同一个Cache的读取方法放在不同类中一样
就好像Page.Request 和Context.Request一样
我觉得Cache是Application的增强版,因为它除了具有Application的功能外,还有时间处理,关联等方法的集成

===================================================

一个应用程序如何调用另外一个应用程序的Cache?

在另一个应用程序中创建一个WebService.
通过调用该Service可以获得Cache.

===================================================

是啊,在Global.asax里面调用HttpContext.Cache是取不到东西的。这个也费了我半天才查出来,到最后不得不在Global类里加了个静态变量。

===================================================

多数浏览器和控制项装置的URL 长度限制为255 个字符 ,最多也就1K。

===================================================

session好用,但是依赖浏览器。

默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。

URL的长度是有限制的。

===================================================

System.Web.HttpContext:

public Cache get_Cache()
{
return HttpRuntime.Cache;
}

...

在HttpContext里定义cache只是为了使用方便。在某些情况下,HttpContext还没被创建出来,就只能用HttpRuntime.Cache。

@abin

“假设一下:如果一个论坛为应用登录用户缓存一些设置,如果没有设置缓存截止的时间,那么它占用的内存会一直变大…… ”

那些东西最好存session。developer要对自己写的代码负责,如果想troubleshooting memory leak,欢迎联系Microsoft Product Support Service..经常看到有人在cache里放几百m的dataset..

@lone

“一个应用程序如何调用另外一个应用程序的Cache? ”

impossible,除非你用caching application block..

===================================================

HttpRuntime.Cache 还可用于自定义类访问Cachem,今天为了解决这个问题花了好多时间

===================================================

一台服务器上可不是一个Web Appliction

===================================================

个人看法:相对于现在的服务器内存来说,缓存占用的内存并不算多,最重要看你是怎么用的。

===================================================

在MSDN上查了,这两个Cache都属于
System.Web.Caching.Cache。
结果自然就一样了。


但我有一点不明白,为什么要弄成一样呢,而且还是全局的,这样如果不设置缓存时间的话所有的变量都会存起来,直到运用程序被重新启动。
假设一下:如果一个论坛为应用登录用户缓存一些设置,如果没有设置缓存截止的时间,那么它占用的内存会一直变大……

看了要好好设置一下缓存时间和偏移量。

===================================================

......

===================================================


 
ASP.NET Cache深度实战:进程内缓存的工程价值与生产级优化 进程内缓存是Web应用性能优化的基础能力,其核心在于低延迟、零依赖、轻量可控。ASP.NET Cache作为.NET Framework原生实现,虽被标记为过时,却仍具备文件依赖、数据库变更自动失效(SqlCacheDependency)、回调通知及优先级回收等独特机制,在离线系统、政企遗留改造、毫秒级响应场景中不可替代。本文聚焦真实医保平台案例,解析缓存键设计、内存安全控制、高并发原子写入、错峰过期防雪崩等关键技术,结合CacheItemPriority策略与SqlCacheDependency实践,揭示 阅读详情

相关推荐

避开地图定位偏差!手把手教你用Python实现火星坐标与WGS84精准转换

本文深入解析了国内地图服务中火星坐标(GCJ-02)与国际标准WGS84坐标系之间的偏差问题,并提供了基于Python的精准转换解决方案。文章详细阐述了坐标转换的核心原理,手把手教你构建可复用的转换工具包,并演示如何将其集成到实际应用(如Flask API)中,帮助开发者和数据分析师有效解决地图定位不准、多源数据无法对齐的痛点,提升地理信息处理能力。

weixin_29250403的博客 125

【原】缓存之 HttpRuntime.Cache

1、HttpRuntime.Cache HttpRuntime.Cache 相当于就是一个缓存具体实现类,这个类虽然被放在了 System.Web 命名空间下了。但是非 Web 应用也是可以拿来用的。 HttpContext.Cache 是对上述缓存类的封装,由于封装到了 HttpContext ,局限于只能在知道 HttpContext 下使用,即只能用于 Web 应用。 2、.绝...

weixin_30575309的博客 557

Obsidian从零搭建:可验证、可回溯、可演进的知识库工具链

个人知识库不是开箱即用的软件,而是基于Markdown内核构建的可演进系统。其核心原理在于分离‘稳定内核’与‘可插拔扩展’:Obsidian原生支持双链、嵌入、Frontmatter等基础能力,构成不可降级的知识骨架;而Dataview、Templater等插件则作为可验证、可回溯的增强层,需通过三问验证(解决痛点?有原生替代?失效可降级?)方可引入。这种设计赋予知识库技术价值——抗版本升级、跨平台兼容、离线可用,并支撑技术文档管理、项目复盘、读书笔记等真实场景。当面对computer use插件不可用或h

weixin_30660027的博客 680

HttpRuntime.Cache用法

上一篇写了Asp.net页面缓存,本篇介绍在服务器端进行缓存。微软.net给我提供了HttpRuntime.Cache对象进行缓存。个人对缓存的理解是,将从数据库、文件、或业务逻辑计算出来的数据,保存在内存中,当下一次遇到相同内容的请求就直接将保存在内存中的数据返回给请求者。这样做的好处是可以提高访问效率,减少文件或是数据库的读取,属于"以空间换时间",适当的运用好Cache可以很大程度提高程序性

风雨无阻,执着追求!!! 4867

手把手复现论文:SVPWM过调制I区与II区算法仿真(附MATLAB源码)

本文详细介绍了SVPWM过调制I区与II区算法的MATLAB仿真实现,从理论推导到Simulink建模逐步解析。通过源码示例展示幅值补偿和六边形跟踪等关键技术,帮助电力电子研究者掌握过调制算法的核心实现方法,适用于电机控制、变频器等工业应用场景。

weixin_28739079的博客 530

【数学模型】灰色关联分析

数学模型-灰色关联分析

suic009的博客 1万+

【.NET Core】你真的了解HttpRuntime类吗

C# HttpRuntime是一个ASP.NET应用程序的核心类之一,它提供了一些有用的方法和属性,可以让ASP.NET应用程序中处理HTTP请求和响应。获取当前请求的HttpContext对象获取应用程序的虚拟地址获取应用程序的物理路径获取应用程序的配置信息获取应用程序的缓存启动应用程序的会话状态调用Web服务类在使用HttpRuntime类之前,需要先确保在ASP.NET应用程序中已经引用了System.Web命名空间。

记录总结工作过往 2284

VirtualBox虚拟机拖放文件总失败?手把手教你配置双向拖放与共享文件夹(Ubuntu版)

本文详细指导如何在VirtualBox的Ubuntu虚拟机中配置高效的数据交换方案。核心是安装VirtualBox Guest Additions,并在此基础上开启双向拖放与共享粘贴板功能,同时建立稳定的共享文件夹,彻底解决主机与虚拟机间文件传输失败的问题,构建无缝的跨系统工作环境。

weixin_29245767的博客 232

HttpRuntime.Cache 缓存

说起缓存,我们首先想的是以空间(内存)换取时间为代价来改善程序性能。下面先说下缓存的有效期的使用 使用情况 1:数据频繁使用 2:访问量不高但是存在周期长 3:缓存数据不是很大,毕竟cache用得过多会增大服务器的压力。 基本语法 add:再次调用不会修改原先的缓存项。 Insert:覆盖原有的缓存项。 Get:获取缓存项的值 Count:获取存储在缓存中的项数 Effecti...

u011791378的专栏 1440

AI测试干货:Claude Code Skill 从入门到精通

本文介绍了Claude Code Skill功能如何解决AI重复工作问题。传统提示词方式需要人工复制粘贴,而Skill功能通过建立AI工作记忆库实现智能触发和分层加载。Skill包含工作指令、文档和资源,能自动执行任务。文章以API测试用例生成为例,展示了Skill的创建流程和结构化设计,包括测试框架、覆盖场景和输出格式,显著提升测试工程师的工作效率。

blues_C的博客 2440

物联网系列③——基于ESP8266与点灯科技平台的温湿度计设计(接入小爱同学)

物联网系列③——基于ESP8266与点灯科技平台的温湿度计设计(接入小爱同学)一、设计目标二、电路展示三、存在的问题四、代码五、需要注意的问题 一、设计目标       前一阵子偶然接触到点灯科技平台,产生了制作一块ESP8266电路板,拥有以下功能: 使用CH340对ESP8266进行程序下载 使用DHT11进行温湿度数据读取 使用点灯科技平台接入物联网,可通过手机APP获得室内温湿度 接入小爱同学,通过语音获取室内温湿度信息 Mico US

weixin_43278295的博客 8853

关于WinForm/Web如何使用缓存Cach

Cache 的绝对到期与滑动到期 绝对到期:设置绝对过期时间 到了指定时间以后会失效。(类似Cookie机制) 相对到期也称滑动到期:设置相对过期时间 指定时间内无访问会失效。(类似Session机制) HttpRuntime.Cache与HttpContext.Current.Cache 为同一个对象HttpRuntime.Cache.Add 存在相同的键会异常,返回缓存成功的...

weixin_30265171的博客 318

基于Keil软件实现对射式红外传感器计次 (江协科技HAL库)

用HAL库复现江协科技,让嵌入式学习之路更顺畅。

2401_82728381的博客 798

SAP物料主数据表结构全解析:从MARA到MARC的底表映射与ABAP开发实践

在ERP系统实施与二次开发中,物料主数据是供应链、财务与生产模块的基石,但许多ABAP开发人员面对MM03界面与后台底表时,常常因数据分散而困惑。理解物料主数据的存储逻辑,首先要掌握SAP按组织级别和视图拆分的表设计原则:通用数据存于MARA,多语言描述存于MAKT,工厂级参数存于MARC,库存数量存于MARD,评估价格存于MBEW。这种设计虽提升了灵活性,却增加了取数与维护的复杂度。对于企业来说,无论是日常报表开发、字段溯源,还是通过附加结构或BADI扩展业务字段,快速定位底表并理清关联关系都是高效交付的

weixin_33834910的博客 279

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

HttpContext.Current.Cache和HttpRuntime.Cache的区别,以及System.Runtime.Caching

先看MSDN上的解释:      HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象。      HttpRuntime.Cache:获取当前应用程序的Cache。       我们再用.NET Reflector工具看看HttpContext.Cache和HttpRuntime.Cache的实现: HttpContext.Cache和HttpRunti...

weixin_33924770的博客 215

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Cache及(HttpRuntime.Cache与HttpContext.Current.Cache)

Cache及(HttpRuntime.Cache与HttpContext.Current.Cache) 我们在.NET运用中经常用到缓存(Cache)对象。 除了System.Web.Caching下的Cache外,我们还可以用到HttpContext.Current.Cache以及HttpRuntime.Cache 那么,HttpContext.Current.Cache以

yongyinmg的专栏 6146

求解HttpRuntime.Cache偶尔缓存丢失的问题

当用户登入的时候,我把该用户的权限放到缓存中(用的是HttpRuntime.Cache),用户的每次操作都会验证权限。现在的问题是,在验证权限的方法中,我会先判断一下是否存在了权限cache,如果不存在,则处理之;存在,则继续判断是否有执行操作的权限。Cache cache = HttpRuntime.Cache;  List rule = bllAction.GetRoleActionName

冰的城 9932

C#笔记(持续更新)

日期时间格式化 DateTime SubmitTime = Convert.ToDateTime(Dt_HandContent.Rows[0]["SubmitTime"].ToString()); string formatTime= string.Format("{0}年{1}月{2}日{3}:{4}", SubmitTime.Year, SubmitTime.Month, SubmitTime.Day, SubmitTime.Hour, SubmitTime.Mi

weixin_44380589的博客 259

深入IIS与ASP.NET管道:从HTTP协议到HttpContext的底层原理

HTTP协议是无状态的通信契约,其设计本质在于将状态管理权交还应用层;IIS架构演进(如集成模式)并非简单升级,而是Web服务器控制权向.NET运行时的系统性移交;AppDomain曾是.NET实现故障隔离的核心机制,其思想在.NET Core中由AssemblyLoadContext继承并轻量化。理解这些基础概念,是掌握现代Web开发底层逻辑的前提——它支撑着从传统IIS托管、.NET Framework管道事件调试,到.NET 6 Minimal Hosting模型迁移的全链路技术决策。本文聚焦HTTP

aobai7842的博客 390

System.Web.Caching.Cache类 Asp.Net缓存 各种缓存依赖

Cache类,是一个用于缓存常用信息的类。HttpRuntime.Cache以及HttpContext.Current.Cache都是该类的实例。 一、属性 属性 说明 Count 获取存储在缓存中的项数。 EffectivePercentagePhysicalMemoryLimit 获取在 ASP.NET 开始从缓存中移除项之前应用程序可使用的物理内存百

笔记本~ 3833

System.Web.Caching.Cache类 缓存 各种缓存依赖

  Cache类,是一个用于缓存常用信息的类。HttpRuntime.Cache以及HttpContext.Current.Cache都是该类的实例。 一、属性 属性 说明 Count 获取存储在缓存中的项数。 EffectivePercentagePhysicalMemoryLimit 获取在 ASP.NET 开始从缓存中移除项之前应用程序可使用的物...

weixin_33856370的博客 88

web中缓存的使用(.Net)

很多人都知道什么叫缓存,甚至学习过,但用起来还真难用。我经过几天的学习cache想跟大家分享和讨论。 我是带着疑问去学习的。缓存是用在什么地方,有什么好处。 缓存就是 把获取的数据暂时存到内存中,当获取的数据没有变化时就还是用内存里的东西。评论中有人说缓存可用文件,数据库存。这个我同意,但一般编程都用微软中 system.web.caching.cache 类,它是在把数据放在内存中。可能有人

天外有天,人外有人。 专注品质 不断创新 让精益求精成为习惯 767

HTTP协议与IIS底层原理:Web开发者的地基课

HTTP协议是Web通信的基石,其无状态设计、请求响应模型及头部机制深刻影响着性能、安全与兼容性;IIS作为Windows平台主流Web服务器,依托HTTP.SYS内核驱动、应用程序池隔离与集成管道模式,构建了高可靠托管运行环境。理解HTTP报文解析、TCP连接复用策略、Cookie生命周期、P3P隐私头演进,以及IIS中经典/集成模式差异、AppDomain隔离机制和ASP.NET请求管道19个执行步骤,不仅能精准定位503/500错误、静态资源授权失效、Session丢失等典型问题,更能为.NET Fr

dingguayi7025的博客 442
上一篇: ASP.NET数据缓存四大方案
下一篇: 缓存依赖、数据库缓存依赖学习以及在LinQ当中使用缓存依赖
ArvinStudy
博客等级 码龄15年 83粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值