我想使用 wxFTP 将文件复制到 FTP 服务器,但我想在不阻塞 UI 的情况下执行此操作,并且更好,同时显示进度条。我可以在没有额外线程的情况下做到这一点吗?
我正在使用 wxLua,但我可以采用任何语言编写的解决方案,只要它使用 wxWidgets 绑定即可。
我想使用 wxFTP 将文件复制到 FTP 服务器,但我想在不阻塞 UI 的情况下执行此操作,并且更好,同时显示进度条。我可以在没有额外线程的情况下做到这一点吗?
我正在使用 wxLua,但我可以采用任何语言编写的解决方案,只要它使用 wxWidgets 绑定即可。
尝试使用wx.lib.delayedresult。它在 wxPython 中可用,但也可能在您的 wxWidgets 库中。它创建单独的工作线程,并使用一个 消费者函数调用,该函数在工作线程完成工作后调用。很实用的东西。
有关详细信息,请参阅wxPython 文档。
为此启动自己的线程有什么问题?
您可以定期检查流canRead()
方法(可能通过计时器或在事件循环中)并且仅在它返回 true 时读取,但它可能比仅仅启动一个单独的线程要复杂得多。