c – 摆脱ShellExecute引起的邪恶延迟
发布时间:2020-12-16 10:15:12 所属栏目:百科 来源:网络整理
导读:这是困扰我一段时间的事情,只需要解决这个问题.每次我调用 ShellExecute来打开一个外部文件(无论是文档,可执行文件还是URL),这都会导致我的程序中有很长的锁定,然后ShellExecute会生成新进程并返回.有谁知道如何解决或解决这个问题? 编辑:正如标签可能表明
这是困扰我一段时间的事情,只需要解决这个问题.每次我调用
ShellExecute来打开一个外部文件(无论是文档,可执行文件还是URL),这都会导致我的程序中有很长的锁定,然后ShellExecute会生成新进程并返回.有谁知道如何解决或解决这个问题?
编辑:正如标签可能表明的那样,这是在使用C的Win32上. 解决方法
你是多线程的吗?
我见过使用ShellExecute打开文件的问题.不是可执行文件,而是与应用程序关联的文件 – 通常是MS Office.使用DDE打开文件的应用程序对所有线程(好吧,我不知道是否全部…)程序进行了一些消息广播.由于我没有在我的应用程序中的工作线程中抽取消息,因此我会挂起shell(以及文件的开头)一段时间.它最终超时等待我处理消息,应用程序将启动并打开该文件. 我记得在一个循环中使用PeekMessage来删除该工作线程的队列中的消息.我一直认为有办法以另一种方式避免这种情况,也许创建不同的线程,永远不会成为消息的目标? 更新 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |