进程.线程.事件.通信.内核对象
dongzhiquan
吉大计算机毕业,南京,程序员.
展开
-
ResetEvent
ResetEvent ResetEvent 这个函数把指定的事件对象设置为无信号状态。 BOOL ResetEvent( HANDLE hEvent ); 参数说明: hEvent [in] 指向事件对象的句柄.由 CreateEvent or OpenEvent 函数返回。 这个句柄需要拥有EVENT_MODIFY_STATE 访问权限. 函数成功,返回非0值,否则返回转载 2009-04-07 16:55:00 · 870 阅读 · 0 评论 -
子线程中定义消息,进行消息循环
子线程中定义消息,进行消息循环原创 2010-07-04 02:48:00 · 1384 阅读 · 0 评论 -
Windows API介绍及用法:CreateFileMapping和MapViewOfFile函数(进程间数据共享)
在开发软件过程里,也经常碰到进程间共享数据的需求。比如A进程创建计算数据,B进程进行显示数据的图形。这样的开发方式可以把一个大程序分开成独立的小程序,提高软件的成功率,也可以更加适合团队一起开发,加快软件的开发速度。下面就来使用文件映射的方式进行共享数据。先要使用函数 CreateFileMapping来创建一个想共享的文件数据句柄,然后使用MapViewOfFile来获取共享的内存地址,转载 2010-04-20 11:25:00 · 4216 阅读 · 0 评论 -
互斥量(mutex)与事件(event)的使用
互斥量(Mutex) CreateMutex:创建一个互斥量 HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, // pointer to security attributes B转载 2010-03-23 21:43:00 · 1528 阅读 · 0 评论 -
在主线程中慎用WaitForSingleObject (WaitForMultipleObjects)
下面的代码我调试了将近一个星期,你能够看出什么地方出了问题吗?线程函数: DWORD WINAPI ThreadProc() { while(!bTerminate) { // 从一个链表中读取信息并且插入到CListCtrl中 // CListCtr转载 2010-03-23 16:20:00 · 659 阅读 · 0 评论 -
在非主线程中创建窗口
//========================================================================//TITLE:// 在非主线程中创建窗口//AUTHOR:// norains//DATE:// Saturday 29-December-2007//Environme转载 2010-03-23 17:09:00 · 478 阅读 · 1 评论 -
线程函数的设计以及线程同步要点(MsgWaitForMultipleObjects等)
使用多线程技术可以显著地提高程序性能,本文就讲讲在程序中如何使用工作线程,以及工作线程与主线程通讯的问题。一 创建线程 使用MFC提供的全局函数AfxBeginThread()即可创建一个工作线程。线程函数的标准形式为 UINT MyFunProc(LPVOID );此函数既可以是全局函数,也可以是类的静态成员函数。之所以必须是静态转载 2010-03-23 00:01:00 · 694 阅读 · 0 评论 -
利用关键代码段实现多线程同步
利用关键代码段实现多线程同步关键代码段又叫临界区,是指一个小代码段,在代码能够执行前,它必须对具有对资源的独中权。如一次只能一个人打电话的公用电话厅,开始时要建个电话厅(初始化临界区:InitializeCriticalSection),一个人打电话(EnterCiticalSection),打完电话离开,便于别人打(LeaveCriticalSection),电话原创 2009-08-28 18:42:00 · 731 阅读 · 0 评论 -
WinExec,ShellExecute ,CreateProcess
三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。 WinExec 两个参数,前一个指定路径,后一个指定显示方式。 ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件转载 2009-05-11 13:46:00 · 912 阅读 · 0 评论 -
CreateProcess
CreateProcess 说明: WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。 函数原型: BOOL CreateProcess ( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAtt转载 2009-05-11 14:17:00 · 772 阅读 · 0 评论 -
利用内核对象同步线程
内核对象可用于不同进程间线程的同步。1.Wait系列函数WaitForSingleObject 挂起当前线程,直到该函数返回。(被等待的对象处于Signal状态或等待超时) 若有多个线程调用该函数等待同一个内核对象,那么当这个内核对象处于Signal状态时只有一个线程会被唤醒。 若线程中有创建Windows的代码,需要用MsgWaitF转载 2009-04-09 11:29:00 · 522 阅读 · 0 评论 -
Windows内核对象
内核对象主要要用来供系统和应用程序管理系统资源,像进程、线程、文件等。存取符号对象、事件对象、文件对象、作业对象、互斥对象、管道对象、等待计时器对象等都是内核对象。我们在编程时经常要创建、打开和操作它们。内核对象通过调用函数来创建,如要创建文件映射对象,就调用CreateFileMapping函数。每个内核对象都会分配一个内存块,只能由其内核访问。该内存块是一种数据结构,用于管理对象的各种信转载 2009-04-08 12:34:00 · 451 阅读 · 0 评论 -
线程的基础知识
线程的基础知识1. 进程与线程有那些区别和联系? 每个进程至少需要一个线程。 进程由两部分构成:进程内核对象,地址空间。线程也由两部分组成:线程内核对象,操作系统用它来对线程实施管理。线程堆栈,用于维护线程在执行代码时需要的所有函数参数和局部变量。 进程是不活泼的。进程从来不执行任何东西,它只是线程的容器。线程总是在某个进程环境中创建的,而且它的整个寿命转载 2009-04-09 12:56:00 · 621 阅读 · 0 评论 -
互斥对象与关键代码段的比较
9.6.2 互斥对象与关键代码段的比较就等待线程的调度而言,互斥对象与关键代码段之间有着相同的特性。但是它们在其他属性方面却各不相同。表9 - 1对它们进行了各方面的比较。表9-1 互斥对象与关键代码段的比较特性互斥对象关键代码段转载 2009-04-08 11:36:00 · 690 阅读 · 0 评论 -
使用WIN32 API CreateProcess()以无窗口方式创建DOS程序
要达到DOS程序运行时不显示窗口的效果,有两种可能:一是创建该DOS进程时,指定不创建窗口;二是隐藏该DOS进程有窗口。根据MSDN,CreateProcess() API的原型如下: BOOL CreateProcess( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes,原创 2010-08-22 16:37:00 · 2544 阅读 · 3 评论