上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页
摘要: 在不确定变量类型的情况下,判断Javascript变量是否为空不要使用:if(tmp){}上述判断的问题在于,例如:当tmp的值为数字0时,也会返回false。所以尽量使用:if(tmp != null){}下面是if(tmp){}判断的结果: if(tmp) if(tmp != null)tmp未定义时 //false //falsevar tmp; //false //falsevar tmp = 0; //false //truevar tmp = 10; ... 阅读全文
posted @ 2013-05-08 16:38 imlucky 阅读(34545) 评论(0) 推荐(0) 编辑
摘要: (转自:http://www.pediy.com/kssd/pediy08/pediy8-709.htm)Windows系统编程之异步I/O和完成端口【作者】北极星2003【来源】看雪技术论坛(bbs.pediy.com)【时间】2006年7月1日一、同步I/O和异步I/O在介绍这部分内容之前先来认识下“异步I/O”。说起异步IO,很容易联想到同步I/O,对于同一个I/O对象句柄在同一时刻只允许一个I/O操作,其原理如下图所示:显然,当内核真正处理I/O的时间段(T2~T4),用户线程是处于等待状态的,如果这个时间段比较段的话,没有什么影响;倘若这个时间段很长的话,线程就会长时间处于挂起状态。 阅读全文
posted @ 2013-05-06 19:16 imlucky 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 需要首先说明的是异步I/O和多路复用同步I/O(如通过select函数在连接池中选择任一完成的端口)是有本质差异的,虽然两种方式都能提高效率。异步I/O的思想是在一个端口支持异步读写,读写异步的系统调用需要OS支持,比如Read、Write有异步的实现版本,则用户调用其Read、Write异步版本,如果端口暂时不可用,会立即返回到用户代码。可以针对同一个端口准备多个异步读写操作,充分利用端口资源以及减少用户在等待端口可用过程中被挂起的时间。一、Windows下的异步I/O的模型通过OVERLAPPED structure和WaitForMultipleObjects/WaitForMultip 阅读全文
posted @ 2013-05-06 19:14 imlucky 阅读(1007) 评论(0) 推荐(0) 编辑
摘要: 之前介绍了Node.js的事件机制,也许读者对此尚会觉得意犹未尽,因为仅仅只是简单的事件机制,并不能道尽Node.js的神奇。如果Node.js是一盘别开生面的磁带,那么事件与异步分别是其A面和B面,它们共同组成了Node.js的别样之处。本文将翻转Node.js到B面,与你共同聆听。异步I/O在操作系统中,程序运行的空间分为内核空间和用户空间。我们常常提起的异步I/O,其实质是用户空间中的程序不用依赖内核空间中的I/O操作实际完成,即可进行后续任务。以下伪代码模仿了一个从磁盘上获取文件和一个从网络中获取文件的操作。异步I/O的效果就是getFileFromNet的调用不依赖于getFile调 阅读全文
posted @ 2013-05-06 19:12 imlucky 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 在 Windows 平台上不可用。Libeio是全功能的用于C语言的异步I/O库,建模风格和秉承的精神与libev类似。特性包括:异步的read、write、open、close、stat、unlink、fdatasync、mknod、readdir等(基本上是完整的POSIX API)。Libeio完全基于事件库,可以容易地集成到事件库(或独立,甚至是以轮询方式)使用。Libeio非常轻便,且只依赖于POSIX线程。Libeio当前的源码,文档,集成和轻便性都在libev之下,但应该很快可以用于生产环境了。 Libeio是用多线程实现的异步I/O库.主要步骤如下:主线程接受请求,将请求放入请 阅读全文
posted @ 2013-05-06 18:37 imlucky 阅读(4164) 评论(0) 推荐(0) 编辑
摘要: 关于C++中的char*与wchar_t*这两种类型的相互转换,网上说的大多很繁琐,可行性也不高。下面这个方法是在MSDN里面找到的,个人认为还比较不错:把char*转换为wchar_t*用stdlib.h中的mbstowcs_s函数,可以通过下面的例子了解其用法:char*CStr ="string to convert";size_t len = strlen(CStr) + 1;size_t converted = 0;wchar_t*WStr;WStr=(wchar_t*)malloc(len*sizeof(wchar_t));mbstowcs_s(&con 阅读全文
posted @ 2013-04-26 16:19 imlucky 阅读(873) 评论(0) 推荐(0) 编辑
摘要: 后台创建进程:下面这段代码可以后台创建进程,不需要再用dos命令在cmd.exe界面操作了。 STARTUPINFO si; ZeroMemory(&si, sizeof(si)); si.cb = sizeof STARTUPINFO; PROCESS_INFORMATION pi; //LPTSTR szCmdline = _tcsdup(TEXT("C:\\notepad.exe D:\\file.txt")); LPTSTR szCmdline = _tcsdup(str);BOOL res = CreateProcess(NULL, ... 阅读全文
posted @ 2013-04-24 19:20 imlucky 阅读(734) 评论(0) 推荐(0) 编辑
摘要: (转自:http://woshiyouyouchen.blog.163.com/blog/static/103998942009112194240398/)你还再为怎么判断一个程序是否结束而苦恼吗?或许你在想可以用一个循环每隔几秒来判断一次这个进程是否结束,但是这样会有问题,如果间隔时间太短就会很占CPU资源,间隔时间太长又不能及时知道程序已经结束,或许有人马上就想到WaitForSingleObject函数,不错Win32 API提供的这个函数能很好的解决这个问题,但是在使用WaitForSingleObject函数的过程中很容易忽略一些问题。小弟不才,在这里略说一二。先看一下函数的原形DW 阅读全文
posted @ 2013-04-24 19:06 imlucky 阅读(4842) 评论(0) 推荐(0) 编辑
摘要: var values=new Array();values["No1"]="beijing";values["No2"]="tianjin";values["No3"]="shanghai";values["No4"]="guangzhou";alert("values="+values);//下面的for循环无法进入,因为数组下标是字符串,在计算数组长度时得到的是0!!!!for(var i=0; i<val 阅读全文
posted @ 2013-04-09 18:00 imlucky 阅读(236) 评论(0) 推荐(0) 编辑
摘要: [windows phone 8] Value does not fall within the expected range.这个错误有可能是xaml树中有重名的控件,要求所有的Name属性是唯一的。但是xaml树中封装在UserControl中的元素可以与它所在的xaml中的其他元素重名。 阅读全文
posted @ 2012-12-11 16:26 imlucky 阅读(1207) 评论(2) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页