C#线程之Task任务详解
在上篇最后一个例子之后,我们发现了怎么去使用线程池,调用ThreadPool的QueueUserWorkItem方法来发起一次异步的、计算限制的操作,例子很简单,不是吗? 然而,在今天这篇博客中,我们要知道的是,QueueUserWorkItem这个技术存在许多限制。其中最大的问题是没有一个内建的机制让你知道操作在什么时候完成,也没有一个机制在操作完成是获得一个返回值,这些问题使得我们都不敢启用这个技术。 Microsoft为了克服这些限制(同时解决其他一些问题),引入了任务(tasks)的概念。顺带说一下我们得通过System.T...
微软放弃 Silverlight?
微软今天关闭了 Silverlight.net 网站,现在访问该网站,会被转到 MSDN 的一个 Silverlight 专题页面。 在新的页面中,你仍然可以找到一些 Silverlight 相关的内容,但不是全部。如果你之前已经收藏了一些 Silverlight.net 域下的网页,现在可能已经失效了。 此外,Silverlight 博客近一段时间发布的也都是一些与 Silverlight 无关的文章。 这些现象预示着 Silverlight 已经逐渐被边缘化,另一侧面也反映了微软内部团队之间的斗争。 “微软放弃 Silverlight”的传闻早在几年前就闹得沸沸扬扬,争论主要围绕 Sil...
wpf内存泄漏问题及解决方案
Windows Presentation Foundation即WPF,它代表着Windows平台UI的未来。微软有其自身的打算,而稍晚于WPF的Silverlight将占领Web和移动 设备市场。不过,和任何的新技术一样,都会经历一些问题,如某些相当严重的内存泄漏问题。 我们要讨论诸多内存泄漏。第一个问题已经发现一段时间,但它并没有引起大多程序员的关注,甚至是专家们的注意。引发该问题需要以下条件配合: 引用对象X属性P的数据绑定路径 对象X含直接引用或间接引用数据绑定操作的目标对象 属性P通过PropertyDescriptor对象而非DependencyProper...
wcf大文件上传配置详解
wcf大文件上传配置详解 网上很多都是扯淡的,这篇文章对命名规则进行了描述。测试可用,感谢原作者 服务器端:web.config <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name="ExcelServer.Service1Behavior"> <!--name=命名空间(ExcelServer)+类名(Server1)+Bheavior--> <serviceMetadata httpGetEnabled="true"/> <serviceDebug includeExceptionDetailInFaults="false"/> <dataContractSerializer maxItemsInObjectGraph="2147483647...
FastReport同时加载两种不同的报表
//func:FastReport同时加载两种不同的报表 //date:2012-11-24 //author:http://blog.peos.cn FastReport.Report report1 = null; string officePath = Application.StartupPath + "//ReportTemplates//office.frx"; string businessPath = Application.StartupPath + "//ReportTemplates//business.frx"; report1 = new FastReport.Report(); List<Model.OrganReport> organReportList=new BLL.OrganReportBLL().GetList(OrganID); foreach(Model.OrganReport item in organReportL...
多个ComboBox/DropDownList绑定同一数据源的问题
多个comboBox绑定同一数据源会出现选择其中的Combobox后其他的都跟着改变。 第一个Combobox选择后,其他的都跟着变成Name1。 解决方法: 将绑定数据源方法修改为如下: List<DataContent> lstData = new List<DataContent>(DataLlist.lstData); cmb.DataSource = lstData;
提升Ado.net效率
Ado.net的连接池 本篇文章起源于在GCR MVP Open Day的时候和C# MVP张响讨论连接池的概念而来的。因此单独写一篇文章剖析一下连接池。 为什么需要连接池 剖析一个技术第一个要问的是,这项技术为什么存在。 对于每一个到SQL Server的连接,都需要经历TCP/IP协议的三次握手,身份认证,在SQL Server里建立连接,分配资源等。而当客户端关闭连接时,客户端就会和SQL Server终止物理连接。但是,我们做过数据库开发的人都知道,每次操作完后关闭连接是再正常不过的事了,一个应用程序即使在负载不大的情况...
滚动条到最下面时自动加载内容
滚动条到最下面时自动加载内容,JS实现 //Author:数据库之家 //URL:http://blog.peos.cn var page=0; $(window).scroll(function() { var o = $('#jokelist'); if(o!=null ){ //var hght= document.body.scrollHeight; //var clt =document.documentElement.clientHeight; //var top= document.documentElement.scrollTop ; var hght= $(document).height();// 整个页面的高度 var clt =$(window).height(); // 当前可见页面高度 var top= $(document)...
.NET回调异步编程
.NET中BeginInvoke等异步方法要等待异步方法执行完毕后才能拿到执行的结果,期间主线程均处于等待状态。而回调和它们最大的区别是,在调用 BeginInvoke时只要提供了回调方法,那么主线程就不必要再等待异步线程工作完毕,异步线程在工作结束后会主动调用我们提供的回调方法,并在回调 方法中做相应的处理。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace 异步调用实现方法汇总4 { /// <summary> /// 异步调...
C#的DataGridView列怎么填充宽度
设置什么可以吧DataGridView的所有列正好占据着整个DataGridView的宽度 把AutoSizeColumnsMode设置为FIll就行了 // 禁止用户改变DataGridView1的所有列的列宽 //DataGridView1.AllowUserToResizeColumns = false; //禁止用户改变DataGridView1の所有行的行高 dataGridView1.AllowUserToResizeRows = false; // 禁止用户改变列头的高度 dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;