首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

waitforsingleobject在64位vba上不起作用

waitforsingleobject是一个Windows API函数,用于等待一个或多个对象的状态变为可用。它通常用于多线程编程中,用于同步线程的执行顺序或等待某个事件的发生。

在64位VBA上,waitforsingleobject函数可能不起作用的原因有以下几个可能:

  1. 平台兼容性:waitforsingleobject函数是一个Windows API函数,它的行为可能会受到不同操作系统平台的影响。在64位VBA上,由于平台差异,waitforsingleobject函数可能无法正常工作。
  2. VBA限制:VBA是一种宏语言,它的功能相对有限。由于VBA的设计目标主要是用于Office应用程序的自动化,它可能没有提供对waitforsingleobject函数的完全支持。

针对这个问题,可以考虑以下解决方案:

  1. 使用其他等待机制:在64位VBA上,可以尝试使用其他等待机制来替代waitforsingleobject函数。例如,可以使用VBA提供的Sleep函数来实现简单的等待功能。
  2. 考虑使用其他编程语言:如果在64位VBA上无法满足需求,可以考虑使用其他编程语言来实现相应的功能。例如,可以使用C#、C++等语言来编写扩展组件,然后在VBA中调用这些组件来实现等待功能。
  3. 咨询官方支持:如果遇到问题,可以咨询相关技术论坛或官方支持,以获取更详细的解决方案。

总结起来,waitforsingleobject在64位VBA上可能不起作用,可能是由于平台兼容性或VBA限制导致的。可以尝试使用其他等待机制或考虑使用其他编程语言来解决该问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C++多线程编程学习一

一、 互斥量 Mutex      学过计算机网络的朋友相信对令牌环网应该不陌生,互斥量的作用就相当于一块令牌,每个主机都要竞争地去“申请”这张令牌,“获得”的主机才有权限在网上发数据包,而“令牌”只有一张...互斥量的特点是只有一个,各线程竞争使用,一个线程获得后,在它释放前,其它线程只好等待。      1....(hMutex);         例如,可设超时为100毫秒,如下所示:         if (WAIT_TIMEOUT == WaitForSingleObject(hrecvEven, 100)...在使用互斥事件时常犯的一个错误就是误把事件当做互斥量在两个线程中防止数据竞争,如下例所示:       Handle hEvent;       hEvent = CreateEvent(NULL, TRUE...WaitForSingleObject成功后,在A执行ResetEvent之前,B可能抢占了CPU并执行了WaitForSingleObject,从而B也有权利执行ResetEvent,这样A、B都有权执行

89220

CreateMutex、WaitForSingleObject、ReleaseMutex——创建互斥对象

CreateMutex CreateMutex作用是找出当前系统是否已经存在指定进程的实例。如果没有则创建一个互斥体。...互斥对象是系统内核维护的一种数据结构,它保证了对象对单个线程的访问权 互斥对象的结构:包含了一个使用数量,一个线程ID,一个计数器 使用数量是指有多少个线程在调用该对象,线程ID是指互斥对象维护的线程的...这个名字可能不与现有的事件、信号机、可等待计时器或文件映射相符它的具体作用是每调用它一次将互斥对象的计数器减一,直到减到零为止,此时释放互斥对象,并将互斥对象中的线程id 置零。...在Windows系统中,线程可以在等待函数中指定一个此线程已经拥有的互斥体,由于Windows的防死锁机制,这种做法不会阻止此线程的运行。...使用例子编辑 常用操作mutex的函数还有:ReleaseMutex/OpenMutex/WaitForSingleObject/WaitForMultipleObjects。

80810
  • createmutex函数参数含义_pthread_create函数

    CreateMutex CreateMutex函数的作用是找出当前系统是否已经存在指定进程的实例,如果没有则创建一个互斥体。...正确的理解是:CreateMutex()函数的第二个参数是FALSE,表示刚刚创建的这个Mutex不属于一任何线程,也就是没有任何线程拥有这个Mutex,一个Mutex在没有任何线程拥有它的时候是出于激发状态的...WaitForSingleObject 函数原型为: DWORD WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds); hHandle为要监视的对象...所以第一个::WaitForSingleObject()函数便返回,释放了该线程对Mutex的拥有权,Mutex又会变成激发态,这样就导致了第二个::WaitForSingleObject()函数的返回...否则own这个mutex并继续运行程序 event一般用在通知, 比如一个事情做完了通知另一个线程, 这里的另一个线程一般是在wait这个event mutex是保护临界区的, 当然你非要拿它等待

    53730

    windows 多线程_关于多线程的技术分享

    否则临界区将不会起到应有的作用,共享资源依然有被破坏的可能。 下面通过一段代码展示了临界区在保护多线程访问的共享资源中的作用。...,首先创建一个可以自动复位的事件内核对象hEvent,而线程函数则通过WaitForSingleObject()等待函数无限等待hEvent的置位,只有在事件置位时WaitForSingleObject...dwMilliseconds在饫锏淖饔糜朐赪aitForSingleObject()中的作用是完全一致的。如果等待超时,函数将返回WAIT_TIMEOUT。...至于WaitForSingleObject()和WaitForMultipleObjects()等待函数在互斥对象保持线程同步中所起的作用与在其他内核对象中的作用是基本一致的,也是等待互斥内核对象的通知...除此之外,使用互斥对象的方法在等待线程的可调度性上同使用其他几种内核对象的方法也有所不同,其他内核对象在没有得到通知时,受调用等待函数的作用,线程将会挂起,同时失去可调度性,而使用互斥的方法却可以在等待的同时仍具有可调度性

    71320

    CreateMutex、WaitForSingleObject、ReleaseMutex「建议收藏」

    与二元信号量不同的是,信号量在整个系统中可以被任意线程获取和释放,也就是说,同一个信号量可以由一个线程获取而由另一线程释放。...在使用互斥量进行线程同步时会用到以下几个函数: HANDLE WINAPI CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes,...dwMilliseconds //超时间隔 ); 说明: WaitForSingleObject的作用是等待一个指定的对象(如Mutex对象),直到该对象处于非占用的状态...除此之外,还有一个与它类似的函数WaitForMultipleObjects,它的作用是等待一个或所有指定的对象,直到所有的对象处于非占用的状态,或超出设定的时间间隔。...买火车票是大家春节回家最为关注的事情,我们就简单模拟一下火车票的售票系统(为使程序简单,我们就抽出最简单的模型进行模拟):有500张从北京到赣州的火车票,在8个窗口同时出售,保证系统的稳定性和数据的原子性

    41920

    Windows线程漫谈界面线程和工作者线程

    大家好,又见面了,我是全栈君 每个系统都有线程,而线程的最重要的作用就是并行处理,提高软件的并发率。针对界面来说,还能提高界面的响应力。...g_bExitThread) { OutputDebugString(“11111”); Sleep(10); } return 0; } 然后在需要它退出的时候把g_bExitThread...当然我们还要知道它是否成功退出了,因为线程句柄是一个内核对象,所以我们就要用到Windows的WaitForSingleObject来等待了。...; } CloseHandle(g_hTrd); g_hTrd = NULL; } 上面说了在界面线程里等待别的线程结束,也就是使用 WaitForSingleObject 的时候会阻塞整个窗口消息的处理...} return 0; } m_csForVec 是一个CCriticalSection变量,这个同步对象和其他的同步变量(事件、信号量、互斥区等)有一些不一样,例如只能在同一个进程的线程间访问、在操作系统的用户态访问

    67920

    关于PHP缓冲控制在IE浏览器下的应用

    > 上面这段程序是实现每隔1秒钟在浏览器上输出一个字符,但实际效果是程序执行完后才把所有字符输出到浏览器上,调试了好几次都不行。在网上搜索了N个技术文章都没有解决这个问题。...最后从一篇文章上找到些灵感,那篇文章里写到flush()函数可能在微软IE浏览器的个别版本上不起作用。...于是我用FireFox浏览器试了一下,果然立即出现了想要的效果,我的浏览器是IE6,经过查阅相关资料,得知,IE的某些版本只有在字符串缓冲到256字节的时候才会将缓冲内容输出到浏览器上。...经验不敢独享,贴上来和各位一起分享,希望在大家的开发过程中如果遇到类似问题可以帮上忙!

    1.2K10

    amazement的用法_release的用法

    Mutex中提供了WiteOne,ReleaseMutex 两个实例方法~ WiteOne的作用是”阻塞当前线程,提供对该线程的原子操作” 也就是说当一个线程遇到WiteOne的时候,如果在WiteOne...里面没有线程在操作,则此线程进去操作 而里面有线程的时候,所有到此的线程均需要排队等候里面的线程执行完毕~ 而控制这样操作的结束标记就是使用ReleaseMutex 方法!...已经中止……\n”, Thread.CurrentThread.Name ) ; //标记-1 Interlocked.Decrement(ref poolFlag) ; } } 另外一种,放在 WaitForSingleObject...后面 直到不再需要保护参数为止 如 要保护全局 int a; 线程1 { WaitforsingleObject..........//不需要保护了 允许其它线程写a } 线程2 { WaitforsingleObject....... //等待获得对a的写的权利 a++ //保护部分 ReleaseMutex......

    3.3K30

    VBA: 变量、过程或函数的作用域

    文章背景: VBA中,变量的作用域,决定变量在哪里能被获取和使用。VBA中的过程和函数,与变量类似,也具有不同的作用域。...Dim guest As String Private guest As String 1.3 工程作用域 Excel VBA 中,一个 Excel 工作簿是一个 VBA 工程。...2 过程或函数的作用域 根据声明位置和方式,过程或函数有三种作用域: (1)模块作用域 (2)工程作用域 (3)全局作用域 2.1 模块作用域 在模块中,使用 Private 关键词声明的过程或函数...2.3 全局作用域 在模块中,直接声明或使用 Public 关键词声明的过程或函数,具备全局作用域。...参考资料: [1] VBA 变量作用域(https://www.lanrenexcel.com/vba-variable-scope/) [2] VBA 过程或函数作用域(https://www.lanrenexcel.com

    1.3K10

    Excel基础:一文带你了解VBA编辑器

    一、VBA编辑器简介VBA编辑器(Visual Basic for Applications Editor)是Microsoft Office套件中集成的Office开发工具,其主要作用是用来编写、编辑和调试...VBA是一种基于微软官方的Visual Basic编程语言的宏语言,用于自定义和增强Office应用程序的功能。二、VBA编辑器界面和功能介绍代码编辑区域:您可以在代码编辑区域编写和编辑VBA宏代码。...项目资源管理器:项目资源管理器显示了VBA项目中的所有模块、表单、工作表等组件。您可以在项目资源管理器中管理和组织您的VBA项目结构。属性窗口:属性窗口显示当前选定对象的属性和属性值。...【自定义功能区】,就会自动打开Excel选项弹窗,右侧的开发工具打勾,最后点击确定按钮就可以在顶部的功能菜单看到【开发工具】的标签栏。...具体看动画效果:开发者工具中VBA相关的组成按钮Visual Basic:点击可以直接打开 VBA 编辑器,作用等同于快捷键 Alt + F11。

    3.2K31

    临界区 互斥量 事件 信号量_互斥信号量与同步信号量

    因为使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享,而且可以在不同应用程序的线程之间实现对资源的安全共享。...信号量包含的几个操作原语:   CreateEvent() 创建一个事件   OpenEvent() 打开一个事件   SetEvent() 回置事件   WaitForSingleObject...dwMilliseconds在这里的作用与在WaitForSingleObject()中的作用是完全一致的。如果等待超时,函数将返回 WAIT_TIMEOUT。 总结: 1....互斥量与临界区的作用非常相似,但互斥量是可以命名的,也就是说它可以跨越进程使用。所以创建互斥量需要的资源更多,所以如果只为了在进程内部是用的话使用临界区会带来速度上的优势并能够减少资源占用量 。...所以可以使用WaitForSingleObject来等待进程和 线程退出。 3.

    83010

    窗体UserForm

    1、什么是窗体: 窗体是VBA里做好了的一个与用户交互的东西,在VBA编辑器界面,点击菜单插入-用户窗体,这样就创建了一个窗体界面,在VBA编辑器里的是一个编辑界面: ?...2、窗体作用: 个人看法: 窗体主要作用就是提供了一种交互界面,让程序制作者更方便制作易用的程序,让使用者通过直接的交互界面更快的学会使用程序。...但是,个人认为窗体在VBA里使用的是不会很频繁的: 由于Excel VBA一般都是处理较为简单的东西,直接一个按钮运行一段程序就完了,所以一般都不怎么需要去制作交互界面。...这是因为在Windows上使用的软件,基本都会有窗体的交互界面,特别是玩游戏用过外挂的人,可能会认为只有这种交互界面的才能算得上是一种软件。 3、代码编辑: 窗体和类相似,内部代码都属于这个窗体。...在VBA编辑器可以直接双击UserForm1那个界面进入到代码编辑,这样进入会自动插入代码: Private Sub UserForm_Click() End Sub 从名称可以看出,这个就是窗体的1

    2.5K20

    ExcelVBA从入门到精通——(1)实现第一个VBA程序

    VBA简介&用途 Visual Basic for Applications(VBA),是依附在应用程序(例如Excel)中的VB语言。...如何打开VBA 1、打开“开发工具”功能(第一次使用VBA) 如果你是第一次使用VBA,需要打开“开发工具”功能。...VBA程序 大部分程序入门都会写一个代码输出“Hello World”,我们写第一个程序在选定的单元格输出自己的昵称。...Selection.Value = "TOMOCAT" '代码块 End Sub '结束一个过程 1、新建模块 模块方便我们导出代码用于其他的Excel,所以养成良好的编程习惯插入模块 2、 在指定区域编写代码...1、打开“立即窗口” 视图——立即窗口 2、在立即窗口输入代码直接作用于excel 选中一个单元格,然后在立即窗口输入代码(不必定义Sub过程),敲击回车键执行: 可以看到执行后被选中的单元格出现了你的昵称

    2.6K10

    VBA还能存在多久?

    Microsoft还能支持VBA多长时间?Microsoft是否有计划抛弃VBA?我学VBA是不是会过时?...... 这些都是很多Excel用户关注了多年的问题,也是很多人争论了多年的问题。...记得在20多年前,JacaScript、Python等明星语言还有现在这么火爆的时候,这些争论就出现了。...一转眼20多年了,Microsoft并没有放弃VBA,虽然极少更新,但是一直存在着,也一直在发挥着它的作用。...一方面,VBA存在多年,已经有了坚实的基础;另一方面,VBA确实太好用了,它原生在Office中,不需要任何附加,很多时候都只需小小的几行代码就能解决很费时费力的问题,何乐而不为呢?...好了,发了一通感慨,主要是由于看了下面这篇文章: VBA会被Python代替吗? 有兴趣的朋友可以去看看,写得很好,分析得很有道理。

    89640
    领券