SessionSubmit

SessionSubmit[expr]

提交异步任务,在当前会话中计算 expr.

SessionSubmit[ScheduledTask[expr,spec]]

提交异步任务,按 spec 定义的时间表在当前会话中计算 expr.

更多信息和选项

  • SessionSubmit[] 返回 TaskObject[] 来表示创建的任务.
  • spec 的可能的值是 ScheduledTask 支持的值.
  • 可以给出下列选项:
  • HandlerFunctions<||>怎样处理生成的事件
    HandlerFunctionsKeysAutomatic提供给处理函数的参数
    MethodAutomatic怎样确定何时允许运行任务
  • Method 选项的可能设置包括:
  • "Idle"只在会话等待用户输入时才运行
    Automatic随时运行,包括在计算过程中
  • 在任务执行过程中,可生成下列事件:
  • "TaskStarted"任务启动
    "ScheduleTriggered"正在开始预定任务的计算
    "MessageGenerated"计算生成了一条消息
    "PrintOutputGenerated"计算生成了显示出来的输出
    "ResultReceived"计算生成了一个结果
    "ScheduleExecuted"执行了预定任务的计算
    "TaskStatusChanged"任务状态发生改变
    "TaskFinished"任务已全部完成
    "TaskRemoved"任务被移除
  • 当指定 HandlerFunctions-><|,"eventi"->fi,|> 时,只要生成了 eventi,就对 fi[assoc] 进行计算. assoc 的元素具有 HandlerFunctionsKeys 的设置指定的键.
  • HandlerFunctionsKeys 指定的可能的键包括:
  • "EvaluationExpression"被计算的表达式
    "EvaluationResult"计算结果
    "MessageOutput"生成的消息的内容
    "PrintOutput"生成的显示出来的输出的内容
    "Task"表示任务的对象
    "TaskStatus"任务的状态
    "TaskType"任务的类型
    "TaskUUID"唯一的任务标识符
    "EventName"被处理的事件的名称
  • 将要处理的表达式被封装在 Hold 中返回.
  • 对于预定的任务,可以指定下列额外的键:
  • "Schedule"任务时间表
    "RunInterval"任务运行间隔
    "PreviousRunCount"任务已经运行的次数
    "RemainingRunCount"任务还需运行的次数
    "TotalRunCount"预定的任务运行总次数
    "NextScheduledTime"预定的任务下次执行时间
  • SessionSubmit 提交的任务在当前的 Wolfram 语言会话中运行,并且可以访问该会话的所有变量和其他状态.
  • 当系统正在等待输入和进行其他计算时,任务会占先运行.
  • 如果 expr 不是一个 ScheduledTask 表达式,SessionSubmit[expr] 实际上是 SessionSubmit[ScheduledTask[expr,{Quantity[1,"Seconds"],1}]];也就是说,expr 只计算一次.

范例

打开所有单元关闭所有单元

基本范例  (10)

创建一个显示消息对话框的任务:

当前会话中运行的任务:

创建一个 2 秒后显示消息对话框的任务:

Quantity 对象来指定时间:

任务完成后显示计算结果:

获取计算时生成的消息:

把消息格式化成常规格式:

获取计算的 Print 输出:

可将有关该任务的信息用于正在计算的表达式:

可将有关该任务的信息用于事件处理函数:

当任务状态发生变化时收到通知:

可能存在的问题  (1)

高级动态功能中所述,由 SessionSubmit 启动的任务会抢先计算表达式. 抢先完成 Pause 或长时间运行的计算后,内核表面上可能会处于锁定或冻结状态,直到计算完成.

这将导致运算器定期暂停 3 秒钟,从而产生内核被锁定或繁忙的表象:

删除任务,使运算器返回正常状态:

在同步(主)运算线程中计算的 Pause,允许运行抢先式计算:

Wolfram Research (2017),SessionSubmit,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SessionSubmit.html (更新于 2019 年).

文本

Wolfram Research (2017),SessionSubmit,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SessionSubmit.html (更新于 2019 年).

CMS

Wolfram 语言. 2017. "SessionSubmit." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2019. https://reference.wolfram.com/language/ref/SessionSubmit.html.

APA

Wolfram 语言. (2017). SessionSubmit. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/SessionSubmit.html 年

BibTeX

@misc{reference.wolfram_2024_sessionsubmit, author="Wolfram Research", title="{SessionSubmit}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/SessionSubmit.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_sessionsubmit, organization={Wolfram Research}, title={SessionSubmit}, year={2019}, url={https://reference.wolfram.com/language/ref/SessionSubmit.html}, note=[Accessed: 22-November-2024 ]}