上一页 1 2 3 4 5 6 ··· 15 下一页
摘要: C# 2.0 为了线程安全,不充许子线程直接访问窗体中的控件如果在子线程中直接访问说窗体控件,编译器会提示,控件不是由该线程创建的.那么在子线程中如何访问窗体中的控件呢?在窗体的构造函数中加入这一句pdfControl.CheckForIllegalCrossThreadCalls = false;子线程就可以直接访问窗体中的控件了,不过这样线程是非安全的.而默认Control.CheckForIllegalCrossThreadCalls=true;(捕获线程错误调用)这时可以用Invoke如下:usingSystem;usingSystem.Collections.Generic;usin 阅读全文
posted @ 2011-07-20 22:23 ph580 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 实在的,我最初打算做的事情和本文主要讨论的内容毫不相关。那时,我第一次发现我需要在.NET中计算一个圆的面积,当然,首先需要一个pi(π)的精确值。System.Math.PI用起来倒是很方便,但它只提供了20位的精度,我不禁为计算的精度而担心(其实21位的就可以绝对令我感到舒服)。所以和其他任何称职的程序员一样,我忘记了真正需要解决的问题,而埋头写出了一个自己喜欢的可以算出任意位小数的π值的程序。最终的结果如图1。 图1. 计算Pi值的程序耗时操作(Long-Running Operations)的进度虽然大多数的程序不需要计算pi的值,但是很多的程序都需要进行一些耗时的操作,比如打印、调用 阅读全文
posted @ 2011-07-20 22:22 ph580 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 在实际使用中,容易造成CPU占用偏高,笔者分析认为是由于信号量本身的缺点造成的,因此笔者重新设计了一款更高效的c#线程池,完全不使用waithandle之类的阻塞线程,而是使用更为简单的最大线程数值(一个long整数)来控制线程的运行。如果超过指定的线程数,那么保存在hash表中的线程进入等待队列,当有空闲位置时,才会释放出一个等待队列中的线程启动并运行。 笔者粗略地计算了下,此种方法比基于信号量的效率要高30左右,性能提高是显著的^_^pdf,下面为大家展示代码。 public class MyThreadManager : MyThreadPool, iThreadManager { // 阅读全文
posted @ 2011-07-16 19:38 ph580 阅读(630) 评论(1) 推荐(0) 编辑
摘要: Berkeley DB来自于Oracle,是一个高性能、嵌入式的数据库。Berkeley DB支持多种语言操作如c、c++、c#、java、perl、python、tcl等。支持同时数千线程访问操作数据库,最大256TB存储数据,广泛应用于linux、window以及其他平台。传统的Berkeley DB只支持键/值对的存储方式,而不支持关系数据库。这在一定程度上限制了Berkeley DB的应用范围,虽然Berkeley DB依然很优秀,但是也要与时俱进嘛。Berkeley DB在最新的版本中加入了对SQL语言的支持。全面兼容SQLite3的语法,这就为广大编程人员提供了更丰富的选择。因为, 阅读全文
posted @ 2011-07-16 19:37 ph580 阅读(1445) 评论(0) 推荐(0) 编辑
摘要: 装箱(boxing)和拆箱(unboxing)是C#类型系统的核心概念.是不同于C与C++的新概念!,通过装箱和拆箱操作,能够在值类型和引用类型中架起一做桥梁.换言之,可以轻松的实现值类型与引用类型的互相转换,装箱和拆箱能够统一考察系统,任何类型的值最终都可以按照对象进行处理.C#语言中的所有类型都是由基类System.Object继承过来的,包括最常用的基础类型:int, byte, short,bool等等,就是说所有的事物都是对象。如果申明这些类型得时候都在堆(HEAP)中分配内存,会造成极低的效率!(个中原因以及关于堆和栈得区别会在另一篇里单独得说说!).NET如何解决这个问题得了?正 阅读全文
posted @ 2011-07-12 22:34 ph580 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 本文介绍一下在WCF中使用SoapHeader进行验证的两种实现方法,同时再次复习自定义Inspector和自定义EndpointBehavior。 在Xml Web Service中能将用户的身份信息如用户名,密码添加到SoapHeader中,从而实现服务调用的身份验证,这种做法是沿用了Http中用户名,密码身份验证,是我们最乐于接受的。而在WCF中因为提供了非常健壮的安全机制,但实现起来真是不够简单。对于多数应用情景来讲,有点大炮打蚊子的感觉。因此好多人在网上询问在WCF中如何象XMl Web Service一样使用SoapHeader来完成用户名,密码身份验证。传统的办法是通过在服务的操 阅读全文
posted @ 2011-07-12 22:32 ph580 阅读(2966) 评论(0) 推荐(1) 编辑
摘要: 正则表达式是一个描述字符模式的对象。JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp对象,也可以用 JavaScript 1.2中的新添加的一个特殊语法来创建RegExp对象.就像字符串直接量被定义为包含在引号内的字符一样,正则表达式直接量也被定义为包含在一对斜杠 (/)之间的字符.所以,JavaScript可能会包含如下的代码: var pattern = /s$/; 这行代码创建一个新的 阅读全文
posted @ 2011-07-09 20:32 ph580 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 假如某个网页的源代码中有如下一段: ……<span class="img">图片1</span>aaaaaaaaaaaaaaaaaaaaaaaaaa<span class="img">图片2</span> …… 想提取出<span class="img">IC交易网图片1</span>和<span class="img">图片2</span>两部分内容,需要用到正则表达式,按着一般情况,匹配字条串如下:@"&l 阅读全文
posted @ 2011-07-09 20:30 ph580 阅读(4220) 评论(0) 推荐(0) 编辑
摘要: 本文将探讨创建自定义ASP.NET服务器控件事件的方法。本文重点对实现控件事件的基本概念进行介绍,这些概念对于帮助开发人员为ASP.NET服务器控件创建事件有着重要意义。 1. 事件基本概念 事件是当有动作发生或者状态改变时,类发出的信息或者通知。通常情况下,状态的发生或者改变由用户界面动作初始化,例如,单击按钮,或者由于其他的程序逻辑引起。产生事件的类或者说发送通知的类叫做事件源sender,接收事件的类叫做事件接收者receiver。二者之间通过委托(delegate)实现关联。下面列举了一段常见的应用事件代码。 //声明事件ClickcustomControl.Click+=newEve 阅读全文
posted @ 2011-07-07 20:31 ph580 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 文本Tag:ASP.NET【IT168技术】在Asp.net中,利用HttpPost的回传机制意味着可以再客户端存储状态并且可以在服务器接收.Asp.net中大部分控件都提供了存储自身状态的功能并且在自身状态改变时引发对应事件。IPostDataHandler接口提供了在服务器处理客户端通过HttpPost回传数据的方法。 控件的状态还有一个很棒的特性是在即使ViewState被禁用的情况下,控件的状态保持依然可用。 注意在Render方法里有:Page.VerifyRenderingInServerForm(this);,这行代码表示此控件必须在<form>标签内,如果不在此标签 阅读全文
posted @ 2011-07-07 20:30 ph580 阅读(156) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 15 下一页