2024-10-01 07:28:02 发布
网友
这个代码不起作用。。。。。。在
self._thread = threading.Timer(interval=2, function=self._sendRequestState, args=(self._lockState,), daemon=True).start()
所以我应该这样写。。在
但是Timer类有Thread.__init__,Thread.__init__有“daemon”作为输入参数。 我不知道为什么它不起作用。。。在
Timer
Thread.__init__
daemon
您可以找到threading.Thread()构造函数here(cpython的最常见的python实现)的源代码:
threading.Thread()
def __init__(self, interval, function, args=None, kwargs=None): Thread.__init__(self) self.interval = interval self.function = function self.args = args if args is not None else [] self.kwargs = kwargs if kwargs is not None else {} self.finished = Event()
如果您将daemon=True传递给它,那么它将被放入kwargs,但是正如您在代码中看到的那样,它没有发生任何变化。所以,是的,您是正确的,您必须在创建daemon属性之后设置它(在调用start()之前。在构造Timer时,似乎没有直接设置它的选项。在
daemon=True
kwargs
start()
您可以找到
threading.Thread()
构造函数here(cpython的最常见的python实现)的源代码:如果您将
daemon=True
传递给它,那么它将被放入kwargs
,但是正如您在代码中看到的那样,它没有发生任何变化。所以,是的,您是正确的,您必须在创建daemon
属性之后设置它(在调用start()
之前。在构造Timer
时,似乎没有直接设置它的选项。在相关问题 更多 >
编程相关推荐