如何检查FrontEnd是否认为评估仍在运行?

| 是否可以通过编程方式检查FrontEnd是否认为评估仍在运行? 甚至更好:是否有办法检查FrontEnd是否有一些待处理的输入要发送到内核? 附言这个问题来自先前的问题。 编辑 在前端评估单元时,我们通常会为内核创建一个输入队列。 我需要一个函数,如果FrontEnd已将来自
EvaluationNotebook[]
的输入队列的最后一个输入发送到内核,则它将返回return0ѭ。换句话说,如果当前输入是FrontEnd生成的输入队列的最后一个输入,我需要一个返回ѭ0的函数。     
已邀请:
这应该工作。当然,您必须在与要执行评估的内核不同的内核中运行它。
NotebookEvaluatingQ[nb_] := (
 SelectionMove[nb, All, Notebook];
 Or @@ Map[\"Evaluating\" /. # &, Developer`CellInformation[nb]]
)
    
显然,最好先使用
Monitor
之类的工具进行设置。例如,
Monitor[
  Do[Pause[6], {i, 10}],
i]
将允许您观察索引变量“ 6”的进度。如果您尚未事先进行设置,则可以使用“评估”菜单下的““中断评估””按钮执行某些操作。例如,尝试以下操作:
Do[Pause[6], {i, 10}]
现在,等待六秒钟或更长时间,然后选择“中断评估”。然后,您可以检查ѭ​​6ѭ的状态,以了解它的走远。您可以使用\“ Debugger Controls \”下的Continue恢复评估。     

要回复问题请先登录注册