waitforsingleobject

多线程编程(9)

12-08
一下子跳到等待函数 WaitForSingleObject, 是因为下面的 Mutex.Semaphore.Event.WaitableTimer 等同步手段都要使用这个函数; 不过等待函数可不止 WaitForSingleObject 它一个, 但它最简单. function WaitForSingleObject( hHandle: THandle; {要等待的对象句柄} dwMilliseconds: DWORD {等待的时间, 单位是毫秒} ): DWORD; stdcall; {返回值

如何快速检测PocketPC是否已经连接到PC上

10-07
如果在程序中检测PocketPC(以下简称PPC)是否已经连接到PC上.PocketPC SDK提供了一组RAPI函数,我们可以通过其中的CeRapiInit或者CeRapiInitEx来检测. 先说CeRapiInit,它的定义是: HRESULT CeRapiInit(void); 这个函数调用起来比较简单一些,只需要检测其返回值就可以.但是当PPC并没有连接到PC上时,该函数会一直等待而不返回,也就是说让当前的线程死锁了.一直等到PPC与PC连接成功的时候才会返回一个S_OK值. 假设一个

干干净净杀死进程

09-18
最近在写程序时碰到这样一个问题:我想将文件备份到网络驱动器上,但是有一些文件正在被其它程序使用,处于打开状态,而且是被独占打开,这时是没法对文件进行备份操作的.因此,要想备份这些文件,必须将打开它们的那些进程kill掉.那么如何干净地杀死这些打开文件的进程呢?相信看完本文后,自然会有办法解决! 其实,在较新的Windows操作系统版本中有一个工具程序叫tskill.exe,用它就可以解决问题.如图一所示: 图一 tskill程序 要杀掉某个程序的进程,可以输入下面的命令便可以杀死其运行实例: t

事件对象在多线程编程中的应用

05-02
本课中我们将要学习事件对象以及如何在多线程编程中如何使用同步对象. 理论:上一课中我们演示了如何用WINDOWS消息在不同的线程之间进行通讯.另外的两种,即:使用全局变量和事件对象,将在本课中讲解. 事件对象就像一个开关:它只有两种状态---开和关.当一个事件处于"开"状态,我们称其为"有信号"否则称为"无信号".您可以在一个线程的执行函数中创建一个事件对象,然后观察它的状态,如果是"无信号"就让该线程睡眠,这样该线程占用的C

asp调用vb生成的dll文件,执行shell异步变同步的解决方法(带源代码)

01-21
vb|解决|源代码|执行|shell|异步|同步 阿里西西web开发团队在开发一个asp系统,需要同步调用vb(dll)执行的shell操作,asp->vb(dll)->shell->rar.exe同步执行exe文件. 由于shell是异步处理,这个问题让我们头疼了很久,最终还是通过百度找到了几个不错的函数,调试过,效果还不错,建议可以先用vb建exe来调试好了,再放入DLL编译给ASP调用. 代码如下: 以下是用vb制作一个exe文件进行调试,打开记事本和计算器示例:Private T

线程通信--利用事件对象

01-07
在线程之间传送信号可以使用事件对象,用MFC的CEvent来表示.一个事件对象有两种状态:信号态与非信号态.线程能监视于信号态的事件,以便在适当的时间完成对事件的操作. 创建事件的语句如下: CEvent ThreadBegin; 事件被创建后就自动处于非信号态,要使用它处于信息态,必须使用对件对象的成员函数SetEvent(),即: ThreadBegin.SetEvent(); 线程监视这个信号来知道事件已准备就绪,从而可以进行其它的操作.而线程通过调用API函数WaitForSingleO