ReaderWriterLock用於同步存取資源。它能在任何指定時間並行讀取多重執行緒或寫入單一執行緒。如果資源不常變更,ReaderWriterLock的產量優於每次一的鎖定(例如Monitor)。如果不常寫入(而且寫入時間很短)而是以讀取為主,則ReaderWriterLock最適合。多重讀取器和單一寫入器交替,就不會長期鎖定讀取器和寫入器。長期保留讀取器鎖定或寫入器鎖定,會影響其他執行緒。為獲得最佳效能,您不妨考慮重組應用程式將寫入期間縮至最小。執行
系统 2019-08-12 09:26:51 2917
C#制作Windows服务安装包这两天公司要用C#写一个windows服务,做成安装安装包。制作的过程中遇到了一些问题,写完之后总结一下。如果以后在用到的话可以可以参考一下,而且由于原来没有做过,不知道这样做是对是不对,请各位看官如果发现有不当之处请指教。开始的时候我的开发工具VS2012,需要用InstallShield,没闹明白,时间紧迫没有搞,改用vs2010。首先创建一个windows服务:添加安装程序:设置服务的属性:这里面简单设置一下服务的属性
系统 2019-08-12 01:33:54 2903
.Net中的5种事务总结.Net2010-01-2923:52:28阅读164评论0字号:大中小订阅在一个MIS系统中,没有用事务那就绝对是有问题的,要么就只有一种情况:你的系统实在是太小了,业务业务逻辑有只要一步执行就可以完成了。因此掌握事务处理的方法是很重要,进我的归类在.net中大致有以下4种事务处理的方法。大家可以参考一下,根据实际选择适当的事务处理。1、SQL事务sql事务是使用SQLserver自身的事务:在存储过程中直接使用BeginTran
系统 2019-08-12 01:52:44 2901
首先访问一个类的私有成员不是什么好做法。大家都知道私有成员在外部是不能被访问的。一个类中会存在很多私有成员:如私有字段、私有属性、私有方法。对于私有成员造访,可以套用下面这种非常好的方式去解决。privatestringname;publicstringName{get{returnname;}set{name=value;}}但是有时候,源代码是别人的,只提供给你dll。或者你去维护别人的代码,源代码却有丢失。这样的情况或许你想知道私有成员的值,甚至去想
系统 2019-08-29 23:26:34 2890
第一、首先在mysql中创建一个存储过程BEGIN/*@selectSqlVARCHAR(5000),--sql语句@orderWhereVARCHAR(200),--排序条件@pageSizeint,--每页多少条记录@pageIndexint=1,--指定当前为第几页@TotalPageintoutput,--返回总页数@totalCountintoutput--返回总记录数*/SET@str=CONCAT("SET@tCount=(SELECTCOU
系统 2019-08-12 01:53:42 2889
在这篇文章(http://blog.csdn.net/downmoon/archive/2007/06/13/1649923.aspx)中,邀月曾经介绍过使用cookie使用登录后像MSN,QQ那样的弹出窗口,今天在项目中再次使用时,对原控件进行了封装,提供了几个属性:1、PopShowCycle:弹出周期。默认为OnceByReCreateCookie。OnceByReCreateCookie,OnceByCreateCookie,只在第一次弹出并使用C
系统 2019-08-29 23:53:34 2888
在业务复杂的应用程序中,有时候会要求一个或者多个任务在一定的时间或者一定的时间间隔内计划进行,比如定时备份或同步数据库,定时发送电子邮件等,我们称之为计划任务。实现计划任务的方法也有很多,可以采用SQLAgent执行存储过程来实现,也可以采用Windows任务调度程序来实现,也可以使用Windows服务来完成我们的计划任务,这些方法都是很好的解决方案。但是,对于Web应用程序来说,这些方法实现起来并不是很简单的,主机服务提供商或者不能直接提供这样的服务,或
系统 2019-08-29 22:21:59 2886
原文出处:http://www.codeguru.com/cs_syntax/CSharp.html原作者:AishaIkram在一些术语上我尽量做到与MSDN的中文资料所述术语保持一致使用环境:.NET,C#,WinXP,Win2000绪论C#是这样的一种语言,具有C++的特点,象Java一样的编程风格,并且象Basic一样的快速开发模型。如果你已经知道了C++,本文会在不到一个小时的时间内让你迅速掌握C#的语法。熟悉Java的括会更好,因为Java的程
系统 2019-08-29 23:14:07 2877
1.C#连接连接Access程序代码:-------------------------------------------------------------------------------usingSystem.Data;usingSystem.Data.OleDb;......stringstrConnection="Provider=Microsoft.Jet.OleDb.4.0;";strConnection+=@"DataSource=C:
系统 2019-08-12 01:52:35 2875
本节讲join操作。我们知道,T-sql中,有三种最基本的join,innerjoin,leftjoin,和rightjoin。而dlinq并不支持rightjoin。道理很简单,rightjoin以right表为基础,left表中没有对应记录的,将以null值填充。而dlinq以left表做为主表创建对象。如果一个对象为null,你如何获取它的其他的属性呢?在C#3.0入门系列(四)-之Select操作一文中,我们提到了queryexpression首先
系统 2019-08-12 01:52:45 2874
第一、首先在sqlserver中创建一个存储过程USE[BZY]GO/******对象:StoredProcedure[dbo].[up_ProcCustomPage2005_New]脚本日期:12/24/201311:17:03******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--=============================================--Author:
系统 2019-08-12 01:53:43 2871
虽然调用存储过程并不难实现,但是在程序中合理的组织代码,能使得程序结构更加的明晰,也更加易于维护。下面的示例将存储过程的调用分为三部分:1、为调用存储过程准备各种数据:数据库连接字符串、存储过程参数2、为执行命令准备参数,使用1中的各种数据,建立与数据库的连接,为存储过程的调用准备好参变量和设置变量3、执行存储过程,如查询操作或更新操作示例代码如下:usingSystem;usingSystem.Collections.Generic;usingSyste
系统 2019-08-12 01:53:43 2850
usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacebleb_sort...{classProgram...{publicclassSwapObj...{publicstaticvoidswap(refTa,refTb)...{Tc;c=a;a=b;b=c;}}staticvoidMain(string[]args)...{//冒泡排序:int[]num=newi
系统 2019-08-29 23:33:23 2845
使用C#创建webservice及三种调用方式GB2312http://csharp.xdowns.com/trackback.php?id=299&encode=gb2312UTF-8http://csharp.xdowns.com/trackback.php?id=299&encode=utf-8微软.NET战略的一个比较重要的部分就是webservice,利用webservice我们可以创建真正有效的分布式应用程序。下面,我们对webservice做
系统 2019-08-29 23:49:48 2839
http://dotnetzip.codeplex.com/wikipage?title=CS-Examples&referringTitle=Exampleshttp://wiki.sharpdevelop.net/SharpZipLib-Zip-Samples.ashxhttp://www.yaosansi.com/post/1424.html调用7zip解压http://www.codeproject.com/script/Articles/View
系统 2019-08-12 09:26:48 2836