摘要: 1:用WM_COPYDATA传递struct 利用WM_COPYDATA可以轻松实现两个进程间的通信,但是一般都是传string数据,今天看到CSDN上有人问如何传Struct。下面是我的解决方法。 [StructLayout(LayoutKind.Sequential)]publicstructCOPYDATASTRUCT{publicintdwData;publicintcbData;publicintlpData;}[DllImport("user32",EntryPoint="SendMessageA")]publicstaticexter... 阅读全文
posted @ 2012-11-01 23:03 vhtt 阅读(799) 评论(0) 推荐(0) 编辑
摘要: 默认情况下,一个线程的栈要预留1M的内存空间 而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程 但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小。 你也可以通过连接时修改默认栈大小,将其改的比较小,这样就可以多开一些线程。 如将默认栈的大小改成512K,这样理论上最多就可以开4096个线程。 即使物理内存再大,一个进程中可以起的线程总要受到2GB这个内存空间的限制。 比方说你的机器装了64GB物理内存,但每个进程的内存空间还是4GB,其中用户态可用的还是2GB。 如果是同一台机器内的话,能起多少线程也是受内存限制的。每个线程对象都... 阅读全文
posted @ 2011-09-24 14:33 vhtt 阅读(260) 评论(0) 推荐(0) 编辑
摘要: eclipse之所以会出现乱码问题是因为eclipse编辑器选择的编码规则是可变的。一般默认都是UTF-8或者GBK,当从外部导入的一个工程时,如果该工程的编码方式与eclipse中设置的编码方式不同,就会产生中文的乱码问题,这其中还有几种情况。如果导入的整个工程的编码方式与eclipse的编码方式有冲突,那么这个工程里所有的中文 都是乱码;如果所有工程的编码方式与eclipse工作空间的编码方式有冲突,那么所有的工程里的中文都有可能是乱码。对于eclipse工作空间 ,eclipse会把你改的设置保存在工作空间的设置文件中,对于单个工程的编码方式进行修改,那么eclipse会把编码方式保存在 阅读全文
posted @ 2011-03-17 08:32 vhtt 阅读(6514) 评论(2) 推荐(1) 编辑
摘要: 人生如梦,岁月蹉跎。转眼即逝,追忆无寻。人的一生最终能得到什么:钢筋水泥。 阅读全文
posted @ 2010-11-16 21:15 vhtt 阅读(244) 评论(0) 推荐(0) 编辑
摘要: Log4j.properties 配置中文说明# 配置根Loggerlog4j.rootLogger=WARN, A1,A2# 将日志输出到控制台log4j.appender.A1=org.apache.log4j.ConsoleAppender# 可以灵活地指定布局模式log4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.app... 阅读全文
posted @ 2010-10-27 15:23 vhtt 阅读(1748) 评论(0) 推荐(0) 编辑
摘要: run\External Tool\External ToolsConfiguration\点击Program\Main中进行配置。Location: c:\Windows\explorer.exeWorking Directory: ${workspace_loc}Arguments: ${container_loc} 阅读全文
posted @ 2010-10-27 14:32 vhtt 阅读(465) 评论(0) 推荐(0) 编辑
摘要: privatevoidbutton1_Click(objectsender,EventArgse){ThreadStartts=newThreadStart(add);Threadth=newThread(ts);th.Start();}#region异步委托实现多线程winform控件编程delegatevoidchangText(stringss);voidadd(){inta=1;intb=... 阅读全文
posted @ 2010-08-02 11:39 vhtt 阅读(637) 评论(0) 推荐(0) 编辑
摘要: public static Array Redim(Array origArray, Int32 desizedSize) { //确认每个元素的类型 Type t = origArray.GetType().GetElementType(); //创建一个含有期望元素个数的新数组 //新数组的类型必须匹配数组的类型 Array newArray = Array.CreateInstance(t,... 阅读全文
posted @ 2010-05-19 22:23 vhtt 阅读(329) 评论(0) 推荐(1) 编辑
摘要: 如何判断一个表中,是否存在一个ID,如果存在不处理,如果不存在,插入值ifnotexists(select*fromtablewhereid=@id)insertintotable(id)values(@id) 阅读全文
posted @ 2010-04-30 13:46 vhtt 阅读(5218) 评论(1) 推荐(0) 编辑
摘要: 一、什么是端口复用:  因为在winsock的实现中,对于服务器的绑定是可以多重绑定的,在确定多重绑定使用谁的时候,根据一条原则是谁的指定最明确则将包递交给谁,而且没有权限之分。这种多重绑定便称之为端口复用。二、我们如何实现Socket端口复用:  其实我们要实现端口复用很简单,我们只要使用SetSocketOption函数设置Socket选项就可以了。MSDN是这样解释的:Socket 选项确定... 阅读全文
posted @ 2010-04-26 09:25 vhtt 阅读(371) 评论(0) 推荐(0) 编辑