02 2012 档案

摘要:一.概述在使用C#进行应用程序设计时,经常会采用多线程的方式进行一些后台任务的工作。对于不同的应用场景,使用的策略也不尽相同。1.后台循环任务,少量UI更新:例如批量上传文件,并提供进度。这种情况使用BackgroundWorker组件是非常好的选择。2.耗时的后台任务:这里的耗时任务是指一个时间较长的任务,并且不能精确获取进度,如:调用一个远程WebService接口。这种情况可以开两个线程,一个工作,一个更新UI(不能提供进度,只能显示动画表示系统在运行中)。3.耗时的UI任务:当工作压力集中在UI响应上时,可以在工作者线程中增加延时,从而让UI线程获得响应时间。整个工作的总体时间会增加, 阅读全文
posted @ 2012-02-27 20:31 @张凯@ 阅读(198) 评论(0) 推荐(0) 编辑
摘要:编辑器加载中...C#代码 /// /// 运行DOS命令 /// DOS关闭进程命令(ntsd -c q -p PID )PID为进程的ID /// /// /// public static string RunCmd(string command) { //實例一個Process類,啟動一個獨立進程 System.Diagnostics.Process p = new System.Diagnostic... 阅读全文
posted @ 2012-02-27 17:08 @张凯@ 阅读(1395) 评论(0) 推荐(0) 编辑
摘要:1 快速排序介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性。步骤:从数列中挑出一个元素,称为 "基准"(pivot),重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退 阅读全文
posted @ 2012-02-15 16:46 @张凯@ 阅读(227) 评论(0) 推荐(0) 编辑
摘要:腾讯向大众提供了申请QQ的界面,方便很多潜在用户加入QQ大军中,注册页面是http://reg.qq.com ,为了限制用户的过度使用,设置了验证码、IP限制等手段,一般用户默认一天只能申请几个QQ号码,号码是随机生成的,当然好的号码是不会有的,这些是腾讯的资源,需要付费才能获取到。本文主要介绍如何利用C#来实现QQ号码的快速、批量申请操作,以及考虑如何加入宽带拨号的方式实现IP的限制,尽可能的申请到更多的QQ号码,以供他用。先看看演示程序的界面效果:=====》上面是我使用C#实现QQ号码申请的演示程序,是应用的雏形。其中为了方便,把用户需要填写的信息封装起来,用户开通QQ号码后,再自行修改 阅读全文
posted @ 2012-02-13 17:29 @张凯@ 阅读(591) 评论(0) 推荐(0) 编辑
摘要:C#中利用委托实现多线程跨线程操作- 张小鱼 2010-10-22 08:38在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常。这是微软为了保证线程安全以及提高代码的效率所做的改进,但是也给大家带来很多不便。其实解决这个问题有两种方法:一,是通过设置System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;在你的程序初始化的时候设置了这个属性,而且在你的控件中使用的都是微软Framework类库中的控件的话,系统就不会再抛出你上面所说的这个错误了。二,就是委托 阅读全文
posted @ 2012-02-13 17:05 @张凯@ 阅读(462) 评论(0) 推荐(0) 编辑
摘要:Demo的界面我利用事件委托事件,仿http://www.cnblogs.com/huyong/写的公共分页用户控件C#代码#region版权信息/*---------------------------------------------------------------------*//项目名称:《Winform分页控件》//文件名:Pager.cs//描述:分页控件//作者:kwonyan*----------------------------------------------------------------------*/#endregionusingSystem; usin 阅读全文
posted @ 2012-02-13 17:01 @张凯@ 阅读(636) 评论(0) 推荐(0) 编辑
摘要:如果程序不是以管理员身份运行,操作本地文件会提示:System.UnauthorizedAccessException异常Vista 和 Windows 7 操作系统为了加强安全,增加了 UAC(用户账户控制) 的机制,如果 UAC 被打开,用户即使是以管理员权限登录,其应用程序默认情况下也无法对系统目录,系统注册表等可能影响系统运行的设置进行写操作。这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,即 Win7 中 以 as administrator 方式运行,那么我们怎么来实现这 阅读全文
posted @ 2012-02-13 16:59 @张凯@ 阅读(415) 评论(0) 推荐(1) 编辑
摘要:反射是一个程序集发现及运行的过程,通过反射可以得到*.exe或*.dll等程序集内部的信息。使用反射可以看到一个程序集内部的接口、类、方法、字段、属性、特性等等信息。在System.Reflection命名空间内包含多个反射常用的类,下面表格列出了常用的几个类。类型作用Assembly通过此类可以加载操纵一个程序集,并获取程序集内部信息EventInfo该类保存给定的事件信息FieldInfo该类保存给定的字段信息MethodInfo该类保存给定的方法信息MemberInfo该类是一个基类,它定义了EventInfo、FieldInfo、MethodInfo、PropertyInfo的多个公用 阅读全文
posted @ 2012-02-13 16:17 @张凯@ 阅读(207) 评论(0) 推荐(0) 编辑
摘要:让软件开机自动运行或者设置自动关机,大部分软件都有这种功能。如何实现呢,其实很简单,开机运行,只需要设置注册表就可以了,关机则调用CMD命令:shutdown -s -t,如下:开机自动运行:/// <summary>/// 设置开机运行/// </summary>public void AutoRun(){ RegistryKey runItem = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true); if (runItem 阅读全文
posted @ 2012-02-13 16:10 @张凯@ 阅读(403) 评论(0) 推荐(1) 编辑
摘要:C# 代码/* * 前提条件,你需要先安装Microsoft Access Database Engine 2010 Redistributable 下载地址: *http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=c06b8369-60dd-4b64-a44b-84b371ede16d&displaylang=zh-cn * 需要注意的是:下载的版本跟你的程序编译的.NET版本一致,而不是跟操作系统的版本一致。 * * 需要添加引用 Microsoft ADO Ext. 2.8 for DDL and Secu 阅读全文
posted @ 2012-02-13 15:51 @张凯@ 阅读(1767) 评论(0) 推荐(0) 编辑
摘要:设计模式的实际应用——在C#中解决单客户端窗口数据并发问题一、 问题引出在VS2008环境下使用C#语言进行WinForm窗口开发时,大多数情况下我们都会使用弹出式窗口进行开发。例如:TestForm form = new TestForm();Form.ShowDialog();另一种窗口打开的方式为非弹出式,例如:TestForm form = new TestForm();Form.Show();这里我使用“弹出式窗口”进行名称的统一,这种窗口的优点是:单线程窗口,十分便于程序员开发,并且在同一系统中的窗口不需要考虑其数据并发问题,十分方便数据管理。因为用户只能使用当前打开的窗口,换句话 阅读全文
posted @ 2012-02-13 15:02 @张凯@ 阅读(340) 评论(0) 推荐(0) 编辑
摘要:一、场景:需要将有一定格式的File里的内容读取到已经定义的类中,譬如一个二进制文件里的内容读取到一个新的DataStructure里面。1. File不是很大,一次将所有内容Load到内存中,不会占用太多Memory;2. 二进制文件无法直接反序列化成一个Object,需要一个映射才能完成转换.二、为什么不用FileStream:首先,我们来看一下FileStream的代码以及原理:FileStream fs = new FileStream(binaryFilePath, FileMode.Open, FileAccess.Read);Encoding enc = Encoding.ASC 阅读全文
posted @ 2012-02-13 14:46 @张凯@ 阅读(727) 评论(0) 推荐(0) 编辑
摘要:尽管使用线程同步对线程安全来说是必须的,但是如果没有用好的话就可能导致死锁。因此,理解什么是死锁并知道如何避免死锁是非常重要的。当两个或两个以上的线程等待两个或多于两个锁被释放然后程序中的逻辑导致锁永远都不会被释放时死锁就发生了。图3描述了一个典型的死锁场景。图3在上图中,线程1获得通过进入一个对象的关键区域获得这个对象的锁L1。在关键部分中线程1想要获取锁L2。线程2获得锁L2同时还想获得锁L1。所以,现在线程1无法获得锁L2而线程2无法获得锁L1,因为这两个线程彼此拥有对方需要的锁而又不会释放它们。结果是两个线程都进入无限等待或者死锁。阻止潜在的死锁发生的最好的方式是避免在同一时间获取多个 阅读全文
posted @ 2012-02-13 14:16 @张凯@ 阅读(206) 评论(0) 推荐(0) 编辑
摘要:using System;using System.Collections.Generic;using System.Text;using System.Net;using System.IO;using System.Windows.Forms;namespace ConvertData{ class FtpUpDown { string ftpServerIP; string ftpUserID; string ftpPassword; FtpWebRequest reqFTP; private void Connect(String path)//连接ftp { // 根据uri创建Ft 阅读全文
posted @ 2012-02-09 10:13 @张凯@ 阅读(539) 评论(0) 推荐(0) 编辑
摘要:C#中 File,Directory,FileInfo,DirectoryInfo区别与应用C#中 File,Directory,FileInfo,DirectoryInfo区别与应用两者的共同点:一:都用于典型的操作,如复制、移动、重命名、创建、打开、删除和追加到文件二:默认情况下,将向所有用户授予对新文件的完全读/写访问权限。两者的区别:File类是静态类,由于所有的File方法都是静态的,所以如果只想执行一个操作,那么使用File方法的效率比使用相应的FileInfo 实例方法可能更高。所有的File方法都要求当前所操作的文件的路径。File 类的静态方法对所有方法都执行安全检查。如果打 阅读全文
posted @ 2012-02-09 09:54 @张凯@ 阅读(552) 评论(0) 推荐(1) 编辑
摘要:C#中DirectoryInfo类、目录信息类、文件夹信息类的用法DirectoryInfo类和Directory类之间的关系与FileInfo类和File类之间的关系十分类似。下面介绍一下DirectoryInfo类的常用属性。DirectoryInfo类的常用属性及说明如表所示。表 DirectoryInfo类的常用属性及说明属性说明Attributes设置当前 FileSystemInfo 的 FileAttributesCreationTime设置当前 FileSystemInfo 对象的创建时间Exists获取指示目录是否存在的值FullName获取目录或文件的完整目录Parent获 阅读全文
posted @ 2012-02-09 09:53 @张凯@ 阅读(1072) 评论(1) 推荐(2) 编辑
摘要:C#对文件夹的判断、创建、移动、删除判断文件夹是否存在DirectoryInfo类用于复制、移动、重命名、创建和删除目录等典型操作。用Directory类的Exists方法可以简单快速的判断文件夹是否存在,参数是文件的路径。返回值是Boolean型。返回True说明文件夹存在,返回False说明文件夹不存在。例如,判断E盘下是否存在名为soft的文件夹。代码如下所示:Directory.Exists("E://soft");创建文件夹通过DirectoryInfo类的Create方法可以方便地创建文件夹。参数是将要创建的文件夹路径。返回值是一个由参数指定的Directory 阅读全文
posted @ 2012-02-09 09:53 @张凯@ 阅读(335) 评论(0) 推荐(0) 编辑
摘要:和Winform中的GDI+相比,WPF提供了一组新的API用于显示和编辑图像。新API特点如下:适用于新的或专用图像格式的扩展性模型。对包括位图 (BMP)、联合图像专家组 (JPEG)、可移植网络图形 (PNG)、标记图像文件格式 (TIFF)、Microsoft Windows Media 照片、图形交换格式 (GIF) 和图标 (.ico) 在内的本机图像格式增强了性能和安全性。高位深图像数据的保留最多 32 位/通道。非破坏性图像缩放、裁切和旋转。简化的颜色管理支持文件内的专用元数据。托管组件利用非托管基础结构提供图像与其他 WPF 功能(如用户界面 (UI)、动画和图形)的无缝集成 阅读全文
posted @ 2012-02-09 09:51 @张凯@ 阅读(548) 评论(0) 推荐(0) 编辑
摘要:引言 本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发。 其中委托的BeginInvoke方法以及回调函数最为常用。 而 I/O线程可能容易遭到大家的忽略,其实在开发多线程系统,更应该多留意I/O线 程的操作。特别是在ASP.NET开发当中,可能更多人只会留意在客户端使用Ajax或者在服务器端使用UpdatePanel... 阅读全文
posted @ 2012-02-07 17:33 @张凯@ 阅读(209) 评论(0) 推荐(0) 编辑
摘要:c#数据库连接关键在于连接字符串,这是数据库开发中最重要的,如果数据库连接不上,其它的一切对 数数库的操作都不能进行。1)c#本地连接数据库ACCESSstring source = @" Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = D:\c#\connDB\school.mdb";2)c#远程连接数据库ACESS远程连接access数据库的几个方法: 1.建立VPN(Virtual Private Network),然后把服务器中mdb文件所在的Folder共享即可。ADO 连接方法如下: “Provider=Mi 阅读全文
posted @ 2012-02-07 10:24 @张凯@ 阅读(728) 评论(0) 推荐(0) 编辑
摘要:最终效果如图:后台代码如下: /// <summary> /// Window6.xaml 的交互逻辑 /// </summary> public partial class Window6 : Window { Grid myGrid = new Grid(); Grid myGd = new Grid(); Canvas canvasOne = new Canvas(); Canvas canvasTwo = new Canvas() { Name = "myCanvas" }; Path pathTwo = null; public Windo 阅读全文
posted @ 2012-02-03 15:24 @张凯@ 阅读(805) 评论(0) 推荐(0) 编辑
摘要:用鼠标旋转相机实现一个虚拟轨迹球(原代号为Avalon的Windows Presentation Foundation的)丹尼尔Lehenbauerhttp://blogs.msdn.com/danlehen抽象一般人想要做的显示三维模型后,他们的第一件事是一下就可以用鼠标旋转。通过鼠标旋转三维对象最常见的技术被称为“虚拟轨迹球”。本文将描述一个轨迹球做什么和步行通过实施机制。在结束示例代码的链接,用鼠标在你自己的WPF应用程序,您可以使用旋转相机。图1a老虎在其原始配置模型图1b虎小鼠模型后一直拖到左略有下降。1。介绍轨迹球转换成三维旋转的2D鼠标的移动。这是通过投影鼠标的位置上,如图2所示 阅读全文
posted @ 2012-02-03 15:06 @张凯@ 阅读(1324) 评论(0) 推荐(0) 编辑
摘要:<ListView Height="225" HorizontalAlignment="Left" Margin="125,58,0,0" Name="listView1" VerticalAlignment="Top" Width="288" ><ListView.View><GridView x:Name="gridView1"><!--<GridViewColumn Header="UserI 阅读全文
posted @ 2012-02-03 14:38 @张凯@ 阅读(5087) 评论(0) 推荐(0) 编辑
摘要:public string Execute(string dosCommand, int milliseconds) { string output = ""; //输出字符串 if (dosCommand != null && dosCommand != "") { Process process = new Process(); //创建进程对象 ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "cmd.exe"; 阅读全文
posted @ 2012-02-03 10:55 @张凯@ 阅读(498) 评论(0) 推荐(0) 编辑
摘要://1.using System.Runtime.InteropServices;//2.import kernel32.dll[DllImport("kernel32.dll",EntryPoint = "LCMapStringA")] public static extern int LCMapString(int Locale,int dwMapFlags,byte[] lpSrcStr,int cchSrc,byte[] lpDestStr,int cchDest); const int LCMAP_SIMPLIFIED_CHINESE = 0x 阅读全文
posted @ 2012-02-03 10:54 @张凯@ 阅读(355) 评论(0) 推荐(0) 编辑
摘要:在wpf中的全局键和form中有些差异,所以在这里记录一下,有用到得朋友可以试试!首先注册APi代码1[DllImport("user32.dll")]2publicstaticexternboolRegisterHotKey(IntPtrhWnd,intid,uintcontrol,System.Windows.Forms.Keyskeys);3[DllImport("user32.dll")]4publicstaticexternboolUnregisterHotKey(IntPtrhWnd,intid);首先在这里事件里注册一个hotkey 并添加 阅读全文
posted @ 2012-02-03 10:52 @张凯@ 阅读(360) 评论(0) 推荐(0) 编辑
摘要:创建型模式1、FACTORY——追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。2、BUILDER——MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键 阅读全文
posted @ 2012-02-03 10:48 @张凯@ 阅读(325) 评论(0) 推荐(0) 编辑
摘要:和Winform中的GDI+相比,WPF提供了一组新的API用于显示和编辑图像。新API特点如下:适用于新的或专用图像格式的扩展性模型。对包括位图 (BMP)、联合图像专家组 (JPEG)、可移植网络图形 (PNG)、标记图像文件格式 (TIFF)、Microsoft Windows Media 照片、图形交换格式 (GIF) 和图标 (.ico) 在内的本机图像格式增强了性能和安全性。高位深图像数据的保留最多 32 位/通道。非破坏性图像缩放、裁切和旋转。简化的颜色管理支持文件内的专用元数据。托管组件利用非托管基础结构提供图像与其他 WPF 功能(如用户界面 (UI)、动画和图形)的无缝集成 阅读全文
posted @ 2012-02-03 10:42 @张凯@ 阅读(341) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示