文章分类 - C#
摘要:一、Cache概述 既然缓存中的数据其实是来自数据库的,那么缓存中的数据如何和数据库进行同步呢?一般来说,缓存中应该存放改动不大或者对数据的实时性没有太多要求的数据。这样,我们只需要定期更新缓存就可以了。相反,如果缓存的更新频率过快的话,使用缓存的意义就不是很大了,因此更新缓存的时候需要一次性从数据库中读取大量的数据,过于频繁地更新缓存反而加重了数据库的负担。那么ASP.NET中的Cache又提供了哪些缓存的过期策略呢?·永不过期。和Application一样,缓存永不过期。·绝对时间过期。缓存在某一时间过期,比如5分钟后。·变化时间过期(平滑过期)。缓存在某一时
阅读全文
摘要:作者:geff zhang来源:博客园发布时间: 2011-02-14 23:03阅读: 750 次推荐: 0原文链接[收藏]摘要:Visual Studio 2010 有一个数据库项目模板:Visual Studio Database Project(以下简称VSDP),VS 2003/2005/2008也有类似的项目,在VS2010上的得到了很大的加强,现在还具备了智能感知. Visual Studio 2010 有一个数据库项目模板:Visual Studio Database Project(以下简称VSDP),VS 2003/2005/2008也有类似的项目,在VS2010上的得到.
阅读全文
摘要:方案一:down voteacceptedHere is a generic solution that allows you to wrap any method in a timeout:http://kossovsky.net/index.php/2009/07/csharp-how-to-limit-method-execution-time/ It uses the useful Thread.Join overload that accepts a timeout in milliseconds rather than manually using timers. The onl.
阅读全文
摘要:此文章由人工翻译。 将光标移到文章的句子上,以查看原文。译文原文Action 委托.NET Framework 4其他版本此主题尚未评级-评价此主题更新:2010 年 6 月封装一个方法,该方法不具有参数并且不返回值。命名空间:System程序集:mscorlib(在 mscorlib.dll 中)语法C#C++F#VBpublic delegate void Action()备注可以使用此委托以参数形式传递方法,而不用显式声明自定义的委托。封装的方法必须与此委托定义的方法签名相对应。也就是说,封装的方法不得具有参数,并且不得返回值。(在 C# 中,该方法必须返回void。在 Visual B
阅读全文
摘要:【问题】用C#模拟网页登陆,其中去请求几个页面,会发起对应的http的请求request,其中keepAlive设置为true,提交请求后,然后会有对应的response:resp = (HttpWebResponse)req.GetResponse();之前的多次调试,一直都是可以正常获得对应的response,然后读取html页面的。但是后来几次的调试,在没有改变代码的前提下,结果GetResponse却始终会超时死掉。【解决过程】1.默认request的timeout是1000000毫秒=100秒,都会超时,手动改为10秒,因此就更容易超时了,无法解决问题。2.将http的request
阅读全文
摘要:【问题】C#中,提交对应的POST类型http请求之前,会执行:Stream postDataStream = req.GetRequestStream();然后填充对应的post数据,再提交http的请求。但是调试的时候,发现每次执行GetRequestStream都很慢。慢也就算了,结果最近发现,某次,执行req.GetRequestStream();死掉。【解决过程】1.网上找了找,根据GetRequestStream的效率为什么这么低?的解释,说是.NET每次会自动搜索代理,所以很慢,此处没有设置代理的话,应该直接复制为空:req.Proxy = null;然后再去执行GetReque
阅读全文
摘要:很久没有写新的东西了,今天在工作中遇到的一个问题,感觉很有用,有种想记下来的冲动。这篇文章是有关模拟登录网站方面的。实现步骤;启用一个web会话发送模拟数据请求(POST或者GET)获取会话的CooKie 并根据该CooKie继续访问登录后的页面,获取后续访问的页面数据。我们以登录人人网为例,首先需要分析人人网登录时POST的数据格式,这个可以通过IE9中只带的F12快捷键,调出开发人员工具。如下图:通过开始捕获得到POST的地址和POST的数据POST数据:email=aaa@163.com&password=111&icode=&origURL=http%3A%2F
阅读全文
摘要:C#中三种定时器对象的比较http://blog.csdn.net/holyrong/archive/2007/09/20/1792357.aspx·关于C#中timer类 在C#里关于定时器类就有3个1.定义在System.Windows.Forms里2.定义在System.Threading.Timer类里3.定义在System.Timers.Timer类里System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用APISetTimer实现的。它的主要缺点是计时不精确,
阅读全文
摘要:javascript 中:var keyStr = keyList.join("_");c# 中:string.Join("_", array);or, for lists:string.Join("_", list.ToArray());var keyStr = keyList.join("_");也可以进行类型扩展:如:public static class ArrayExtension{public static string AsString(this string[] array, string sepe
阅读全文
摘要:// nullable_type_operator.csusing System;class MainClass{ static int? GetNullableInt() { return null; } static string GetStringValue() { return null; } static void Main() { // ?? operator example. int? x = null; // y = x, unless x is null, i...
阅读全文
摘要:====== vs2005 ======================================------ webForm project------E:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplatesCache\CSharp\Web\2052\WebClass.zip------winForm project-----E:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplatesCache\CSharp\2052\Class.
阅读全文
摘要:在做一个项目的过程中,需要将一些数据组织起来,第一个想到的就是HashTable,主要就是考虑它用得比较广,再然后是KEY的唯一性,于是乎就用了。用了之后就发现了后果很严重:数据加入哈希表的时候的顺序和迭代输出的顺序不一致,这问题可真严重了,既然哈希表不能满足要求,只能用其它的数据结构了,找了一下就NameValueCollection了,用起来来还真好,主是没有支持KEY的唯一性,不可无所谓了,反正我这个项目也不好要求其唯一性了。 关于HashTable和NameValueCollection输出顺序对比可通过以下示例得出。using System;using System.Coll...
阅读全文
摘要:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Management;namespace WindowsApplication1{ public partial class Form4 : Form { public Form4() { Ini...
阅读全文
摘要:在Visual Stuido 2010中有一个新的功能那就是IntelliTrace.IntelliTrace被引入到Visula Studio中来加速我们对.NET应用程序的调试,它通过对预先设置的事件和方法在运行过程中的跟踪并将其有效地传递给调试执行者,从而快速的传递程序在执行过程中的状态和各种信息来帮助开发者更好的调试程序,快速的发现问题。实际上,在Visual Studio 2010之前,Microsoft Visual Stuido已经帮助我们很好的继承了调试工具,比如对变量的监控,对堆栈的查看等等,并且允许设置断点进行单步调试等。所有的这些都在很好的帮助开发者来了解程序在不同的执行
阅读全文
摘要:params关键字可以指定在参数数目可变处采用参数的方法参数。在方法声明中的params关键字之后不允许任何其他参数,并且在方法声明中只允许一个params关键字。示例:字面意思比较难懂,所以看示例很有用。//keywords_params.csusingSystem;classApp{publicstaticvoidUseParams(paramsobject[]list){for(inti=0;i<list.Length;i++){Console.WriteLine(list[i]);}}staticvoidMain(){//一般做法是先构造一个对象数组,然后将此数组作为方法的参数o
阅读全文
摘要:ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。注:在C#中,方法的参数传递有四种类型:传值
阅读全文
摘要:lock(obj) 锁定 obj 对象lock(this) 锁定 当前实例对象,如果有多个类实例的话,lock锁定的只是当前类实例,对其它类实例无影响。直接上代码。主窗体代码如下:delegate void SetTextCallback(string text); public Form1() { InitializeComponent(); } ///<summary> /// 利用委托设置 文本框内容 ///</summary> ///<param name="text...
阅读全文
摘要:??可能是一个被遗忘的运算符,很少看到有人用它,它的用法很简单却很实用:variable ?? defaultValue相当于variable == null ? defaultValue : variable有了它,一行便能搞定Lazy Evaluation了:使用??之前:publicUserAccessUsers{get{if(_users==null){_users=Proxy.GetQueryObject<UserAccess>();}return_users;}}之后:publicUserAccessUsers{get{return_users??(_users=Pro
阅读全文

浙公网安备 33010602011771号