如何在 Python DBus 中实现异步方法?下面的一个例子:
class LastfmApi(dbus.service.Object):
def __init__(self):
bus_name = dbus.service.BusName('fm.lastfm.api', bus=dbus.SessionBus())
dbus.service.Object.__init__(self, bus_name, '/')
@dbus.service.method('fm.last.api.account', out_signature="s")
def getUsername(self):
## How do I get this method done asynchronously ??
## For example, this method should go off and retrieve the "username"
## asynchronously. When this method returns, the "username" isn't available
## immediately but will be made available at a later time.
我正在使用 Twisted 的 glib2 反应器。
更新:我知道这种行为是可以实现的——DBus 包括一个“串行”(唯一标识符)到方法调用,并且被调用的方法可以访问这个标识符,以便将“调用”与“回复”匹配。