消息处理-halcon算子中形态学原理分析

上传者: 26731219 | 上传时间: 2022-03-30 16:53:56 | 文件大小: 4.98MB | 文件类型: -
CVI
虚拟仪器软件开发环境——LabWindows/CVI 6.0 编程指南 259 void *callbackData, unsigned int threadID) { char *str = *(char **)threadLocalPtr; free (str); } 一些被分配的资源必须在分配它们的线程中释放,这些资源被称为具有线程亲缘。例 如,一个面板必须在创建它的线程中释放。当调用CmtDiscardThreadLocalVar的时候,实用 库在调用它的线程中调用线程局部变量的释放函数,并在每一个访问这个变量的线程中调 用一次这个函数。在释放回调函数的threadID参数中,把需要调用释放回调函数线程的线 程ID传递给它,用这个线程ID确定是否可以直接释放具有线程亲缘的资源,或者是否需要 调用toolslib.fp中的PostDeferredCallToThreadAndWait函数在正确的线程中释放。下面的代 码说明如何改变上面的程序在分配字符串的线程中释放它们: void CVICALLBACK StringDiscard (void *threadLocalPtr, int event, void *callbackData, unsigned int threadID) { char *str = *(char **)threadLocalPtr; if (threadID == CmtGetCurrentThreadID ()) free (str); else PostDeferredCallToThreadAndWait (free, str, threadID, POST_CALL_WAIT_TIMEOUT_INFINITE); } LabWindows/CVI中samples\utility\threading\threadlocalvar\threadlocalvar.prj例程演示了 如何在LabWindows/CVI中使用线程局部变量。 7.2.8 其它一些要注意的问题 一、消息处理 每一个创建窗口的线程必须处理Windows消息以避免造成系统锁死。用户界面库函数 RunUserInterface包含了一个处理LabWindows/CVI用户界面事件和处理Windows消息的循 环,用户界面库函数GetUserEvent和ProcessSystemEvents在每一次调用它们的时候处理 Windows消息。在下面情况有一个发生的时候,程序中的每一个线程必须定期调用 GetUserEvent或ProcessSystemEvents来处理Windows消息: 线程创建了一个窗口但是没有调用RunUserInterface 线程创建了一个窗口而且调用了RunUserInterface,但是执行回调函数需要相当长 的时间才能返回到RunUserInterface循环(超过几百微秒)。 另外,可以在程序中不能正确处理Windows消息的地方加入这些函数。当在 LabWindows/CVI用户界面线程调用GetUserEvent,ProcessSystemEvents或RunUserInterface

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明