上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 40 下一页
摘要: string是c#里面最最常用的类,和它的使用频度比起来,它的操作确少的可怜,实例方法只有三十个左右,静态方法只有十多个,远远满足不了我们日常的需求。本文使用扩展方法来增加string的功能,举出几个例子,也算是抛砖引玉吧!首先我们把string类最常用的静态方法IsNullOrEmpty扩展成“实例”方法:publicstaticboolIsNullOrEmpty(thisstrings){returnstring.IsNullOrEmpty(s);}下面是调用代码:1publicstaticvoidTest1()2{3strings="";4boolb1=string. 阅读全文
posted @ 2013-06-09 13:08 于为 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 声明:本文仅提供一种编程思路,所提供代码仅供参考,如需使用,请自行完善。我们在做程序的的时候经常要处理用户输入,作为我们的主要语言中文,经常会出现全角、半角的问题,这会在查询时给我们带来很多麻烦。本文采用扩展方法解决全半角切换的问题,效果图代码如下:publicstaticvoidExample(stringuserInput){stringsbc=userInput.ToSBC();//转全角//具体操作,如存入数据库stringdbc=userInput.ToDBC();//转半角//具体操作,如存入数据库}///<summary>///转全角(SBCcase)///</ 阅读全文
posted @ 2013-06-09 13:05 于为 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 1.1前言不刷新地图而能让数据实时显示,这在ArcGIS中已经不在是一个困扰我们的难题,在ArcGIS Engine的开发过程中,每一次更新数据后都需要刷新才能,更改大量数据并不断的刷新,让用户在静静的等待,这不是很痛苦吗?为此ArcGIS提供了一个动态图层,专门用于解决这样问题。ArcGIS 显示子系统管理着要素的显示和刷新,异步刷新显示和大量数据的渲染使得CPU的利用率增大,这可能导致显示延迟等问题.我们看一下ArcGIS 显示子系统的结构图,从这张图我们更能清楚的看到ArcGIS的显示原理:动态显示技术将渲染大量的数据从CPU端移动到了显卡上,利用了显卡的性能,这明显提高了显示性能.动态 阅读全文
posted @ 2013-06-05 13:59 于为 阅读(2838) 评论(1) 推荐(0) 编辑
摘要: [csharp]view plaincopyusingSystem;usingSystem.Threading;usingSystem.Collections;usingSystem.Collections.Generic;//将线程同步事件封装在此类中,//以便于将这些事件传递给Consumer和//Producer类。publicclassSyncEvents{publicSyncEvents(){//AutoResetEvent用于“新项”事件,因为//我们希望每当使用者线程响应此事件时,//此事件就会自动重置。_newItemEvent=newAutoResetEvent(false) 阅读全文
posted @ 2013-05-31 15:38 于为 阅读(950) 评论(0) 推荐(0) 编辑
摘要: [csharp]view plaincopy/*泛型类:Queue*命名空间:System.Collections.Generic*描述:表示对象的先进先出集合。*类型参数:T--指定队列中元素的类型*备注:*队列容器中的项,只能从先进去的开始删除,不能无规则删除容器队列中的项,比如,不能直接删除第2个,或最后一个项,*要删除第2项,只能先删除第一个项,然后才能删除原来的第2项,当前的第一项.(只能删除第一项!!!)*Queue在接收顺序存储消息方面非常游泳,以便于进行顺序处理.存储在Queue中的对象在一端插入,从另一端移除*Queue的容量是指Queue可以保存的元素数.默认初始容量为8. 阅读全文
posted @ 2013-05-31 15:35 于为 阅读(801) 评论(0) 推荐(0) 编辑
摘要: Control的Invoke和BeginInvoke 是相对于支线线程(因为一般在支线线程中调用,用来更新主线程ui)Invoke立即插入主线程中执行,而BeginInvoke 要等主线程结束才执行Control.Invoke 方法 (Delegate):在拥有此控件的基础窗口句柄的线程上执行指定的委托。Control.BeginInvoke 方法 (Delegate):在创建控件的基础句柄所在线程上异步执行指定委托。近日,被Control的Invoke和BeginInvoke搞的头大,就查了些相关的资料,整理如下。感谢这篇文章对我的理解Invoke和BeginInvoke的真正含义。(一)C 阅读全文
posted @ 2013-05-29 09:53 于为 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 前几篇文章我已经对异步的操作进行的详细的解释.异步操作也是线程的一种,当我们开始一个异步操作(新线程),完成调用后需要和其他线程通信(可能需要告知状态信息),这时候我们就需要线程间的通信编程.线程间通信我们看下面的图图1我们来看线程间通信的原理:线程(Thread B)和线程(Thread A)通信,首先线程A必须实现同步上下文对象(Synchronization Context),线程B通过调用线程A的同步上下文对象来访问线程A,所有实现都是在同步上下文中完成的.线程B有两种方式来实现线程间的通信.第一种:调用线程A的同步上下文对象,阻碍当前线程,执行红色箭头调用,直到黄色箭头返回(同步上下 阅读全文
posted @ 2013-05-29 09:47 于为 阅读(506) 评论(0) 推荐(0) 编辑
摘要: 在前面3篇文章,我已经介绍了异步的工作原理和相关方法和参数的应用.下面我们介绍Stream流的操作,并使用System.IO.FileStream来揭开如何开发异步的Stream(System.IO.Stream)读/写操作异步的Stream读/写操作下面是继承于System.IO.Stream的类System.IO.StreamMicrosoft.JScript.COMCharStreamSystem.IO.BufferedStreamSystem.IO.FileStreamSystem.IO.MemoryStreamSystem.IO.UnmanagedMemoryStreamSystem 阅读全文
posted @ 2013-05-29 09:46 于为 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 异步的核心: IAsyncResultAsynchronousProgrammingModel整个异步调用过程中都是围绕IAsyncResult来进行的,大家可以看看上篇文章的例子,BeginXXX返回这个对象,EndXXX接收这个对象来结束当前异步对象,下面我们来看看IAsyncResult接口成员/和实现此接口的AsyncResult类成员(其中有些在上篇中已经涉及到)IAsyncResult接口1publicinterfaceIAsyncResult2{3WaitHandleAsyncWaitHandle{get;}//阻塞一个线程,直到一个或多个同步对象接收到信号4BooleanIsC 阅读全文
posted @ 2013-05-29 09:44 于为 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 我们怎样进行异步编程/开发?现在扩充下上篇文章的类(AsyncTest),提供更多的例子并从中做下简单的对比,从新的认识下异步的内部机制,下面我们增加一个新的委托1步,我们添加一个新方法(计算年薪YearlySalary)publicdecimalYearlySalary(decimalsalary,intmonthCount,decimalbonus);2步,为这个方法增加异步的功能,这样我们仍然使用委托(Delegate)publicdelegatedecimalSalaryEventHandler(decimalsalary,intmonthCount,decimalbonus);经过简 阅读全文
posted @ 2013-05-29 09:43 于为 阅读(261) 评论(0) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 40 下一页