摘要:
精确测量一段代码的执行时间1.LARGE_INTERGER类型LARGE_INTERGER是union类型,用于表示一8个字节的有符号整数,定义如下:typedef union _LARGE_INTERGER{ struct{ DWORD LowPart; LONG HighPart; }; LONGLONG QuadPart;}LARGER_INTERGER;如果编译器支持64整数,可以直接使用QuadPart(64位),否则分别对LowPart和HighPart存取,HighPart的最高位为符号位表示数的范围:-3689348814741910324到+46116860184273879 阅读全文
摘要:
多线程等待的艺术-等待一个线程的结束前言: 等待某件事情的发生是线程经常要做的事情,当你读取用户的输入,或是存取磁盘文件时,线程必须等待,当结束主线程之前,我们要保证这个进程的所有用户线程已经结束-如何等待其他线程的结束-是一个值得深思的问题 之前我们使用GetExitCodeThread()判断一个线程是否还在执行,通过不断的检查GetExitCodeThread()的返回值,判断某个线程是否结束,只有线程真正结束时,我们才结束主线程,如果我们没有等待线程结束就莽撞的结束主线程,可能线程会在完成它的工作之前就被强制的结束掉,造成不可预料的后果 通过GetExitCodeThread()... 阅读全文