草庐IT

ios-long-running-background-task

全部标签

windows - 为什么另一个线程中的阻塞 IO 会阻止 CreateWindowEx() 返回

我有一个非常简单的Windows控制台应用程序,它首先创建一个线程来处理stdin上的输入。它使用main()中的CreateThread()创建线程,线程做的第一件事是调用getchar()并阻塞,等待。然后main()使用RegisterClass()注册一个窗口类,并调用CreateWindowEx()创建一个不可见的消息窗口。但是CreateWindowEx()永远不会返回。如果我删除线程中的getchar()并将其替换为while(1)Sleep(1000);,一切正常。如果我将Sleep(1000);添加到线程函数的开头,CreateWindowEx()调用会成功,但随后线

windows - 重叠套接字 IO : WSAGetOverlappedResult Fails with 996 Errorcode

我正在维护一个旧的Windows应用程序并且有一个我无法解决的问题。在新硬件上,在各种操作系统下,我们开始看到过去非常稳定的地方从未见过的错误。它打开一个UDP套接字并将其配置为广播UDP数据。然后它会传输数据。该代码使用重叠IO,因此它有一个线程在等待重叠IO事件的线程中等待。套接字是这样打开的://Createdatagramsocketif(!SocketDgCreate(&m_SDGScan,pstAppState->szScannerIP,(short)nPort)){StatusMessage(MSG_ERR,"socketcreatefailedon'%s'Port%u\

windows - 如何使用 asdf uiop :run-program under sbcl 从 Lisp 运行 Windows shell 命令

我们想使用sbcl和asdfuiop:run-program从Lisp中调用Windowsshell命令。我们在Windows10上使用sbcl1.3.6在emacs/slime下做了什么。64位和asdf3.1.5。是:CL-USER>(require'asdf)(shadowing-import'asdf::run-program)然后,正确工作的(如在Unix上)是这样的:CL-USER>(run-program"echotest":output:string)"test"NIL0CL-USER>但是根本不起作用,错误是对文件的任何操作:(run-program"dir")(ru

windows - 未解析的外部符号 _png_init_io 在函数 _pixReadStreamPng 中引用

在Windows7下,我已经下载并解压了leptonica.zip,然后按照以下步骤(为了成功运行Cmake):cdleptonicamkdirbuildcdbuildsetPATH=%PATH%;C:\OCR\additionalLibs\zlib-1.2.8\build\Debug;C:\OCR\additionalLibs\zlib-1.2.8\build;C:\OCR\additionalLibs\zlib-1.2.8setPATH=%PATH%;C:\OCR\additionalLibs\lpng143;C:\OCR\additionalLibs\lpng143\build\

node.js - 在与本地网络服务器通信的 Electron 应用程序中实现 socket.io

我必须让本地运行的Web服务器与本地运行的WindowsElectron应用程序通信,以便发送一些消息,Electron应用程序会将其显示为通知。我看到有人推荐使用socket.io进行客户端和服务器之间的实时通信,但我发现很难理解它,因为没有我可以研究的示例来了解它的实际工作原理。欢迎提供有关此主题的任何来源和解释。 最佳答案 只需通过thistutorial.从简单的网络开始。当你让它工作时-将它移植到Electron。 关于node.js-在与本地网络服务器通信的Electron应

windows - Inno 安装程序 : How to change uninstall background color

我正在尝试找出如何更改UNINSTALLER中底部面板的背景颜色以匹配我能够使用我在此处找到的信息为INSTALLER设置的颜色:InnoSetup:Howtochangebackgroundcolor不幸的是,我一直无法找到任何方法来扩展该答案以也包括卸载页面。它非常适合安装,但是当我测试卸载时,我看到了这个:在安装程序中,当下面板的背景颜色改变时,斜面标签的背景也随之改变,但我找不到卸载程序的类似设置。我查看了CurPageID值的列表,似乎没有一个与卸载程序相关,但我希望它被列出或使用与安装程序相同的设置。遗憾的是,两者似乎都不是真的。任何人都可以解释一下正确的方法吗?谢谢!编辑

c# - 启动 "background"Windows 应用程序

在Windows/.NET上,您能否想出一种方法,以某种方式在后台启动现有应用程序,以便用户看不到它,但我可以通过常规API调用(单击按钮等)与其交互?这对于“包装”我无法修改的旧应用程序非常有用。 最佳答案 好吧,你可以在VB中做这种事情......我怀疑你将它翻译成C#会遇到任何问题:DimpAsNewProcessWithp.StartInfo=NewProcessStartInfo.StartInfo.UseShellExecute=True.StartInfo.WorkingDirectory=someFolder.Sta

Windows : Have my program run in kernel mode?

我目前正在了解Windows操作系统的不同运行模式(内核模式与用户模式)、设备驱动程序、它们各自的优缺点以及一般的计算机安全性。我想创建一个实际示例,说明在内核模式下运行的故障设备驱动程序会对系统造成什么影响,例如破坏用于关键操作系统进程的内存。如何直接在内核模式而不是用户模式下执行我的代码?我是否必须编写虚拟设备驱动程序并安装它才能执行此操作?在哪里可以阅读有关Windows内核和用户模式的更多信息?我知道这样做的危险,并将在仅运行WindowsXP的虚拟机上进行所有实验 最佳答案 “WindowsInternals”一书对所讨论

c# - IO操作的并发问题

我正在编写一个多线程控制台应用程序,它从Web下载pdf文件并将其本地复制到我们的内容服务器位置(windows服务器)。这也是将文件提供给我们网站的相同位置。我对这种方法持怀疑态度,因为存在并发问题,例如如果网站上的用户从内容服务器请求pdf文件,同时控制台应用程序正在写入或更新文件,则可能存在一个IO异常。(如果原始内容随时间发生变化,应用程序还会对pdf文件进行更新)有没有办法控制并发问题? 最佳答案 您可能希望创建和更新文件的操作是原子的,以便处理这些文件的任何其他进程都能获得正确的版本,而不是仍然打开以供写入的版本。您可以

java - 为什么追加到文件时,Windows 和 Linux 机器上的 file-io 结果不同?

我有一个类通过读取上传的文件将新配置附加到现有配置。问题是它在Windows上运行良好,但在Linux上却不是这样——我正在使用Servlet接收文件。新配置必须从一个新行开始,并且任何地方都不能有空行。以下是代码。publicclassConfigGen{publicstaticvoidprocess(FileconfigFile,FileuploadedFile)throwsIOException{synchronized(configFile){if(shouldAppend(configFile,uploadedFile)){StringBuilderbuilder=readF