1

所以我有一个 Python 脚本,它每 x 分钟将文件同步到我的 NAS。我正在尝试编写一个应用程序指示器(ubuntu)来遵循上述脚本的过程。

如果我将指标代码嵌入到脚本中并使用 GLib.timeout_add(10, handler_timeout) 那么指标在同步完成之前无法更新 - 即参见下面的布局:

*

setupIndicator()
sync():
    update app indicastor to say currently syncing
    sync to nas - takes say 5mins
    update app indicator - sync comlplete
GLib.timeout_add(30minutes, self.sync)
Gtk.main()

*

这是我想做的,但当然不是这样。我的麻烦是我不知道从这里去哪里 - 我怎样才能做到这一点?

4

1 回答 1

0

我认为您需要将 NAS 功能放入一个线程中,并且该线程在每次更新时都会启动。

线程做的第一件事/最后一件事是更新指示器说忙/闲。

我为 Ubuntu 编写了一个 appindicator(Python 3,GTK+ 3 indicator-ppa-download-statistics名为 我不确定您是否需要使用我在实例中使用的锁定机制或全局标志,但至少线程方法将允许 NAS 的东西在后台发生而不会阻塞指示器被用户使用。

于 2014-07-23T12:46:08.340 回答