- 博客(139)
- 资源 (62)
- 问答 (1)
- 收藏
- 关注
原创 .Net线程足迹(二) ——传递参数至线程
方法一:应用ParameterizedThreadStart这个委托来传递输入参数,这种方法适用于传递单个参数的情况。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Lin
2010-04-26 15:19:00
3427
原创 SQLite启动事物
事务(DbTransaction):SQLite 缺省为每个操作启动一个事务,所以成批插入的时候,启动事务,比不启动事务快n倍。 在没启动事务之前往Sqlite数据库里插入1000多条数据的情况,结果每次都需要一两分钟才能完成.而在启动事物以后所需要的时间直接变成不到2秒!原来sqlite花两分钟是由于ExecuteNonQuery方法执行时自己提交了更新事务,默认执行更新操作是会自动
2010-04-16 15:22:00
2277
原创 .Net线程足迹(一)
开始学习线程了,做个记录:) 1、在这个小例子里,将创建一个新线程,我们将用两个线程演示多线程的工作方式。 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace ManualResetEv
2010-04-14 14:25:00
1534
转载 Control.Invoke&Control.BeginInvoke
只在创建控件的线程里设置控件的属性当然是可以的,但是两个线程都在自顾自的运行,我有什么办法让别的线程停下手头的工作,来执行我分派的任务,这又不是两个人,我可以跟他说下。嘿,您还别说,这里的机制还真像两个人,甲线程发个短信给乙线程说,哥们,我有个事儿自己不好处理,怕出问题,你抽空儿给我处理下。根据甲线程发短信的方式,甲线程要么发了短信后就忙自己的事儿然后等乙线程处理完后的消息,要么一直在那里傻傻的等
2010-04-09 15:34:00
1774
转载 Invoke and BeginInvoke
在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate。 一、为什么Control类提供了Invoke和BeginInvoke机制?关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己。1、windows程序消息机制Windows GUI程序是基于消息机制的,有个主线程维护着一个消息泵
2010-04-09 13:52:00
611
原创 Windows窗口和消息
进行Windows程序设计,实际上是在进行一种对象导向的程序设计(OOP)。这种对象正是Windows之所以命名为「Windows」的原因。作为对象,使用者会在屏幕上看到这些窗口,并通过键盘和鼠标直接与它们进行交互操作。窗口以「消息」的形式接收窗口的输入,窗口也用消息与其它窗口通讯。 这有一个Windows的消息范例:我们知道,大多数的Windows程序都有大小合适的应用程
2010-04-09 13:45:00
1046
原创 Delegate.BeginInvoke例子
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namesp
2010-04-09 13:19:00
8499
转载 C#使用SendMessage传递字符串
在C#中使用SendMessage,原本以为很简单的事,却处处碰壁。在定义消息时忘记了用户可定义消息的边界值,在网上一阵疯找后来发现是const int WM_USER = 0x400。接着是SendMessage的lParam类型不能决定(默认是IntPtr),我想发送字符串信息,就将它定为了string型,然后通过重写DefWndProc接收自定义消息。问题出现:(string) mess
2010-03-30 16:10:00
5499
转载 C#中使用SendMessage
在C#中,程序采用了的驱动采用了事件驱动而不是原来的消息驱动,虽然.net框架提供的事件已经十分丰富,但是在以前的系统中定义了丰富的消息对系统的编程提供了方便的实现方法,因此在C#中使用消息有时候还是大大提高编程的效率的。 1 定义消息 在c#中消息需要定义成windows系统中的原始的16进制数字,比如 const int WM_Lbutton = 0x201; //定义了鼠标的左键点击消息
2010-03-30 15:58:00
2047
转载 C# SendMessage
public sealed class API { //wMsg参数常量值: //WM_KEYDOWN 按下一个键 public static int WM_KEYDOWN = 0x0100; //释放一个键 public static int WM_KEYUP = 0x0101; //按下某键,并已发出W
2010-03-30 15:36:00
914
原创 进程的互斥运行
正常情况下,一个进程的运行一般是不会影响到其他正在运行的进程的。但是对于某些有特殊要求的如以独占方式使用串行口等硬件设备的程序就要求在其进程运行期间不允许其他试图使用此端口设备的程序运行的,而且此类程序通常也不允许运行同一个程序的多个实例。这就引出了进程互斥的问题。 实现进程互斥的核心思想比较简单:进程在启动时首先检查当前系统是否已经存在有此进程的实例,如果没有,进程将成功创建并
2010-03-25 15:06:00
826
转载 C#读写者线程(用AutoResetEvent实现同步)
1. AutoResetEvent简介 通知正在等待的线程已发生事件。无法继承此类。 常用方法简介:AutoResetEvent(bool initialState):构造函数,用一个指示是否将初始状态设置为终止的布尔值初始化该类的新实例。 false:无信号,子线程的WaitOne方法不会被自动调用 true:有信号,子线程的WaitOne方法会被自动调用pu
2010-03-24 16:22:00
1753
1
原创 WaitHandle.WaitOne 方法
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace ConsoleTest{ //下面代码说明在进程等待后台线程执行完时,如何使用等待句柄阻止进程终止。 class Prog
2010-03-24 11:53:00
21056
原创 Observer设计模式——委托事件
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace DelegateObserver{ /// /// 热水器(监视对象) /// public class Heater {
2010-03-19 16:55:00
864
转载 Control.Invoke和Control.BeginInvoke简述
1.背景介绍 在Windows Form中使用多线程时,除了创建控件的线程以外(就是主线程),绝对不要在任何其他线程里面调用控件的成员(只有极个别情况例外),也就是说控件属于创建它的线程,不能从其他线程里面访问。这一条适用于所有从System.Windows.Forms.Control派生的控件(因此可以说是几乎所有控件),包括Form控件本身也是。举一反三,我们很容易得出这样的结论
2010-01-15 08:39:00
859
原创 SQLITE 一个表中数据复制到另一个表中
在SQL中有如下两种方法可以实现将一个表中数据到另一个表中1> select ... into new_tablename from ... where ... 2> insert (into) old_tablename select ... from ... where ... 区别是前者把数据插入一个新表(先建立表,再插入数据),后者是把数据插入已经存在的一个表中,我个人喜欢后者,因
2010-01-12 09:12:00
21584
原创 SQLITE数据表主键设置Id自增方法
搞定了一个困扰许久的问题,原来sqlite中的主键也是可以设置为自增的:)方法就是声明为 INTEGER PRIMARY KEY 的字段可以自动增加。 网上查到资料说,从 SQLite 的 2.3.4 版本开始,如果将一个表中的一个字段声明为 INTEGER PRIMARY KEY,那么只需向该表的该字段插入一个 NULL 值,这个 NULL 值将自动被更换为比表中该字段所有行的最大
2010-01-12 08:39:00
101580
1
原创 修改注册表实现禁用/启用USB
private void button2_Click(object sender, EventArgs e) { //禁用usb RegistryKey keyLocalMachine = Registry.LocalMachine; RegistryKey key = keyLocal
2009-12-31 14:12:00
4031
原创 打包时设置安装路径
方法如下: 安装程序工程——视图——应用程序文件夹——属性—DefaultLocation:d:/[ProductName]
2009-12-29 14:23:00
1125
原创 c#实现动态加载Dll
原理如下:1、利用反射进行动态加载和调用. Assembly assembly=Assembly.LoadFrom(DllPath); //利用dll的路径加载,同时将此程序集所依赖的程序集加载进来,需后辍名.dllAssembly.LoadFile 只加载指定文件,并不会自动加载依赖程序集.Assmbly.Load无需后辍名 2、加载dll后,需要使用dll中某类.Type type=ass
2009-12-28 13:54:00
42153
1
原创 判断服务是否已经启动
private void btnIsServiceRun_Click(object sender, EventArgs e) { ServiceController[] service = ServiceController.GetServices(); bool isStart = false;
2009-12-26 10:53:00
2526
原创 sqlexception:当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。
今天在查询数据时报了这个异常,表信息如下: sql语句如下:declare @mac varchar(20),@dateTime dateTimeset @mac=00:AA:BB:CC:DD:FFset @dateTime =2009-12-24 00:00:00delete IllegalAppTitle where id not in(select
2009-12-24 13:50:00
9951
原创 Windows 服务截图CopyFromScreen报错"句柄无效"
Windows 服务中截图运行到CopyFromScreen函数报错"句柄无效",在Winform程序中运行正常。 Google、百度了一下,有网友说是此程序不适合做成服务程序,未找到解决办法!如图所示:代码如下: public static Bitmap GetScreen() { int w = Screen.Primary
2009-12-22 15:13:00
6832
3
转载 C#创建Windows服务(Windows Services) 实战之系统定时重启服务
//服务器重启服务,作者:柳永法 [url]www.yongfa365.com[/url]using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.ServiceProcess;using Syst
2009-12-15 12:46:00
2172
1
转载 CopyFromScreen方法的使用案例
写在前面:有没有想过屏幕捕捉是很简单的事情?至少,在.Net上面,是很简单的事情,还有一个方法专门提供了这个功能,它就是CopyFromScreen方法,是Graphics的实例的一个方法,可以将当前屏幕上面的指定区域捕捉下来。如果对这个功能做进一步的扩展,很容易就可以做出一个像红蜻蜓一样的屏幕捕捉工具,当然,专业水平肯定还不及人家的产品的。效果图效果图中显示有多个控件,其中重要的是名为“捕捉
2009-12-11 08:19:00
3705
转载 为C# Windows服务添加安装程序
最近一直在搞Windows服务,也有了不少经验,感觉权限方面确定比一般程序要受限很多,但方便性也很多。像后台运行不阻塞系统,不用用户登录之类。哈哈,扯远了,今天讲一下那个怎么给Windows服务做个安装包。为什么做安装包?当然是方便了,不用每次调用InstallUtil,还有,就是看上去正规些。不多说了,先来看看怎么做吧。首先,当然是创建一个Windows服务的项目。这个大家应该都知道怎么做(这都
2009-12-09 08:29:00
3134
2
原创 Windows服务安装后设置自动启动与允许服务与桌面交互的方法
1、自动启动的方法设置:请先设置以下两个控件:设置serviceProcessInstaller1控件的Account属性为“LocalSystem”.设置serviceInstaller1控件的StartType属性为"Automatic". 服务上添加安装程序后,通过编码实现自动启动,方法如下:给serviceProcessInstaller1添加AfterInstall事件,
2009-12-09 08:27:00
12654
1
原创 别送错了——男女之间互送礼物的含义大全 !
送男朋友:1.围巾----我永远爱你2.杯子----一辈子3.信----我想念你4.睡衣----我给你我的全部5 花-----我希望把我的名字放在你的心上6.书-----我相信你很聪明7.口香糖-----我希望跟你交往很久8.香烟----我讨厌你9.本子----我希望看你天真的爱情10.戒指----你永远属于我的11.伞----我在任何情况下都要保护你12.发夹----我希望你能成功13.镜
2009-11-25 16:06:00
1536
1
原创 Sqlite数据库报错——The database disk image is malformed
SQLite有一个很严重的缺点就是不提供Repair命令。导致死亡提示database disk image is malformed有很多种可能,一般有几种原因: 1. sqlite数据库在写入时突然掉电等,导致数据库里的结果被破坏。 2. sqlite数据库所存的磁盘空间不够。 3. 磁盘有坏磁道等,可换个磁盘试试。 google了一下,从N多劳苦大众的经验获知,如果遇到这种情况基本
2009-11-20 15:32:00
5192
转载 "赢在中国"点评人给80后年轻人的30个忠告
1、一个年轻人,如果三年的时间里,没有任何想法,他这一生,就基本这个样子,没有多大改变了。 2、成功者就是胆识加魄力,曾经在火车上听人谈起过温州人的成功,说了这么三个字,“胆子大”。这其实,就是胆识,而拿得起,放得下,就是魄力。 3、这个世界,有这么一小撮的人,打开报纸,是他们的消息,打开电视,是他们的消息,街头巷尾,议论的是他们的消息,仿佛世界是为他们准备的,他们能够呼风唤雨,无所不能。你的目
2009-11-20 13:26:00
573
转载 用一辈子的时间去忘记一个人
一个人总要走陌生的路,看陌生的风景,听陌生的歌,然后在某个不经意的瞬间,你会发现,原本是费尽心机想要忘记的事情真的就那么忘记了。幸福,不是长生不老,不是大鱼大肉,也不是权倾朝野。幸福是每一个微小的生活愿望达成。当你想吃的时候有得吃,想被爱的时候有人来爱你。爱情是灯,友情是影子,当灯灭了,你会发现你的周围都是影子。朋友,是在最后可以给你力量的人。 我爱你不是因为你是谁,而是我在你面前可
2009-11-18 11:08:00
678
转载 好文章,请耐心看完~
你发觉了吗? 爱的感觉,总是在一开始觉得很甜蜜, 总觉得多一个人陪、多一个人帮你分担, 你终於不再孤单了,至少有一个人想著你、 恋著你,不论做什么事情, 只要能一起,就是好的.... ... ....但是慢慢的,随著彼此的认识愈深, 你开始发现了对方的缺点, 於是问题一个接著一个发生, 你开始烦、累,甚至想要逃避, 有人说爱情就像在捡石头, 总
2009-11-16 16:19:00
583
原创 用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。
将程序部署到其他机器上访问数据库时提示如下信息:用户 sa 登录失败。原因: 未与信任 SQL Server 连接相关联。上网查找解决方案,大多都是以下这种问题。 这一问题一般是由于SQL Server未集成Windows身份验证导致的,所以解决方案为:1 打开SQL Server企业管理器。2 选择服务器名称上右键选择“编辑SQL Server注册属性”,然后在对话框中选择
2009-11-09 09:49:00
1567
原创 c# Winform窗体最小化的时候,出现在系统托盘里!
c# Winform窗体最小化的时候,不在任务栏里出现,而出现的系统托盘里! /// /// 窗体最小化的时候,出现在系统托盘里(即不在任务栏里出现) /// /// private void ShowHideWindow(bool isShow) {
2009-11-05 09:23:00
1393
原创 SendMessage 参数
Windows是一个消息驱动式系统,SendMessage是应用程序和应用程序之间进行消息传递的主要手段之一。VFP声明:DECLARE INTEGER SendMessage IN user32; INTEGER hWnd,; INTEGER wMsg,; INTEGER wParam,; INTEGER lParam参数1:hWnd-窗口句柄。窗口可以是任何类型的屏幕
2009-11-04 14:54:00
549
转载 在C#中调用windows API函数
在C#中调用windows API函数对于windows 系统API函数的调用在程序设计中有时是必不可少的,各种编程语言都规范了调用的方法和接口,在C#语言中的调用方法如下(以下编程环境为Visual Studio .NET):1、 在工程项目中添加一个类新项,打开这个类文件,在文件头部加入对以下命名空间的引用:using System.Runtime.InteropServices; 在类定义
2009-11-04 13:47:00
735
转载 Windows服务“允许服务与桌面交互”的使用和修改方法
描述:在自己写的一个系统服务程序,需要经常用到“允许与桌面进行交互”的设置,网上很多使用修改注册表的形式实现,我测试过,修改注册表后,选中的勾是选上了,但不能弹出应用程序;据说重启电脑后可以,但我不想重启,实际应用也不允许重启,故没有测试重启是否可行的情况。如图: 例如:当我需要运行服务程序的时候,弹出我的应用程序,则要在Windows服务“允许服务与桌面交互”中打勾,当
2009-11-02 10:08:00
19316
转载 用C#创建Windows Service
现在的.NET框架已经为Windows service的开发提供足够强大的支持,你只需要关注service所要实现的逻辑,而完全不用关心service底层是如何实现的,相比以前用MFC来说,真是质的飞跃啊。闲话少谈,看看如何实现一个最基本的windows service,以及如何来调试windows service. 打开VS 2005,点击File->New->Project…。,在创建工程
2009-10-30 09:55:00
570
Oracle学习相关资料大全
2009-04-24
2009-4-21(2009-4-21)
2009-04-21
用于收集和监视系统的很多状态信息及监控注册表的Demo
2009-04-15
Mobile Tracker Application for SmartPhones
2009-04-14
Getting a Millisecond-Resolution DateTime under Windows CE
2009-04-10
读取Excel数据到DataGrid c#代码
2009-04-09
Pocket PC services
2009-04-01
PdfiumViewer-master(Framwork4.0).rar
2020-07-10
SQL Server CE Query Tool
2010-07-14
Add Custom Properties to a PropertyGrid
2009-08-29
PPC取设备唯一号GetDeviceUniqueID
2009-07-02
A TreeView Control with ComboBox Dropdown Nodes
2009-06-13
Custom ComboBoxes with Advanced Drop-down Features
2009-06-09
使用 OpenNETCF.Desktop.Communication.dll拷贝设备文件到PC
2009-05-15
VS2013设置断点后调试程序就卡死,求大神指教!!!!!!
2016-07-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅