08 2007 档案
摘要:今天仿书上做的一个监控内存的小软件:界面如下:主要代码:void CYx_MemoryView::OnDraw(CDC* pDC){CYx_MemoryDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);CString str;double dFree =0 , dUse = 0;int x = 0,y = 0 ;CRect rect;CPen Pen;CBrush Brush;Brush.CreateSolidBrush(RGB(255,0,0)); //画内部Pen.CreatePen(PS_SOLID,100,RGB(255,0,0));//画边框p
阅读全文
摘要:管理事件内核对象 在前面讲述线程通信时曾使用过事件内核对象来进行线程间的通信,除此之外,事件内核对象也可以通过通知操作的方式来保持线程的同步。对于前面那段使用临界区保持线程同步的代码可用事件对象的线程同步方法改写如下: // 事件句柄HANDLE hEvent = NULL;// 共享资源 char g_cArray[10];……UINT ThreadProc12(LPVOID pParam){ // 等待事件置位 WaitForSingleObject(hEvent, INFINITE); // 对共享资源进行写入操作 for (int i =...
阅读全文
摘要:管理事件内核对象 在前面讲述线程通信时曾使用过事件内核对象来进行线程间的通信,除此之外,事件内核对象也可以通过通知操作的方式来保持线程的同步。对于前面那段使用临界区保持线程同步的代码可用事件对象的线程同步方法改写如下: // 事件句柄HANDLE hEvent = NULL;// 共享资源 char g_cArray[10];……UINT ThreadProc12(LPVOID pParam){ // 等待事件置位 WaitForSingleObject(hEvent, INFINITE); // 对共享资源进行写入操作 for (int i =...
阅读全文
摘要:管理事件内核对象 在前面讲述线程通信时曾使用过事件内核对象来进行线程间的通信,除此之外,事件内核对象也可以通过通知操作的方式来保持线程的同步。对于前面那段使用临界区保持线程同步的代码可用事件对象的线程同步方法改写如下: // 事件句柄HANDLE hEvent = NULL;// 共享资源 char g_cArray[10];……UINT ThreadProc12(LPVOID pParam){ // 等待事件置位 WaitForSingleObject(hEvent, INFINITE); // 对共享资源进行写入操作 for (int i =...
阅读全文
摘要:临界区 临界区(Critical Section)是一段独占对某些共享资源访问的代码,在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。 临界区在使用时以CRITICAL_SECTION结构对象保护共享资源,并分别用EnterCriticalSection()和LeaveCriticalSection()函数去标识和释放一个临界区。所用到的CRITICAL_SECTION结构对象必须经过I..
阅读全文
摘要:摘要: 多线程同步技术是计算机软件开发的重要技术,本文对多线程的各种同步技术的原理和实现进行了初步探讨。 关键词: VC++6.0; 线程同步;临界区;事件;互斥;信号量; 正文 使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问题...
阅读全文
摘要:这两天在写一个内存监控的DLL,刚开始学写DLL,什么都不会,昨天在网上找一个有关内存的小程序,如下:#include <windows.h>#include <stdio.h>#define DIV 1024char *divisor = "K";#define WIDTH 7void main(int argc, char *argv[]){ MEMORYSTATUS stat; GlobalMemoryStatus (&stat); printf ("The MemoryStatus structure is %ld byte
阅读全文
摘要:数据库:初级:选择题:下列聚合函数中不忽略空值 (null) 的是 【 C 】 A、SUM (列名) B、MAX (列名) C、COUNT ( * ) D、AVG (列名) SQL中,下列涉及空值的操作,不正确的是 【 C 】 A、AGE IS NULL B、AGE IS NOT NULL C、AGE = NULL D、NOT (AGE IS NULL) 在视图上不能完成的操作是【 C 】 A、更新视图 B、查询 C、在视图上定义新的基本表 D、在视图上定义新视图 在基本SQL语言中,不可以实现【 D 】 A、定义视图 B、定义基表 C、查询视图和基表 D、并发控制 SQL的集合处理方式与宿主
阅读全文
摘要:一 填空题(20分)1.C语言表达式 5>2>7>8 的值是( )。2.当执行完以下语句后,变量a的值为( ),d的值为( ),e的值为( )。a=6; b=++a; c=--a; d=a++; e=a--;3.下面程序段的输出结果是( )。 char a=111; a=a^00; printf(“%d %o/n”,a,a);4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是( )。 char a[3];5.设有以下宏定义,则执行赋值语句 a=PP+20;(a为int型变量)后,a的值是( )。 #define PR 8 #define PP PR*406.定义结构体
阅读全文
摘要:我的VC6.0自从装好后每次都出现这个错误,有的可以complie,但是不能link,也不是程序本身的错,求教解决方法.--------------------Configuration: d - Win32 Debug--------------------Linking...LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16Debug/d.exe : fatal error LNK1120: 1 unresolved externalsError executing link.exe.
阅读全文

浙公网安备 33010602011771号