当另一个笔记本单元格正在执行时,小部件回调不会触发

Widget callback does not fire while another notebook cell is executing

我有一个单元格生成一个按钮,单击时调用一个函数:

stop_button = widgets.Button(description='Stop Motor')
stop_button.on_click(stop_motor)

然而,当另一个单元格正在执行时,不会触发按钮的回调(即使按钮似乎响应点击)。

我能否使按钮始终有效,即使在执行另一个单元格时也是如此?

我不确定这是最佳答案,但我将我的 longer-running 任务设为异步:

%gui asyncio
import asyncio

async def work():
    while True:
        await asyncio.sleep(0.1)

task = asyncio.create_task(work())

但是,您需要对每个可能会阻止您单击按钮的单元格重复此模式。