taskCallback
位于 base
包(package)。 说明
addTaskCallback
注册一个 R 函数,每次完成顶级任务时都会调用该函数。
removeTaskCallback
un-registers 是之前通过 addTaskCallback
注册的函数。
这些提供了对用于管理task-completion操作的内部/本机机制的低级访问。一个可以用taskCallbackManager
在R- 管理语言级别R每个任务完成时调用的函数。这样更容易、更直接。
用法
addTaskCallback(f, data = NULL, name = character())
removeTaskCallback(id)
参数
f |
每次成功完成顶级任务时要调用的函数。分别使用 5 个或 4 个参数调用,具体取决于是否指定 |
data |
如果指定,这是回调函数 |
id |
一个字符串或一个整数,标识内部回调列表中要删除的元素。整数索引从 1 开始,即第一个元素为 1。当前注册的处理程序的名称可使用 |
name |
字符:要使用的名称。 |
细节
顶级任务是单独的表达式而不是整行输入。因此,expression1 ; expression2
形式的输入行将产生 2 个顶级任务。
调用顶级任务回调,其中包含顶级任务的表达式、顶级任务的结果、指示是否成功完成的逻辑值(当前始终为 TRUE)以及指示是否打印结果。如果在对 addTaskCallback
的调用中指定了 data
参数,则该值将作为第五个参数给出。
回调函数应该返回一个逻辑值。如果该值为 FALSE,则回调将从任务列表中删除,并且不会通过此机制再次调用。如果该函数返回 TRUE,则它将保留在列表中,并将在完成下一个顶级任务时调用。
值
addTaskCallback
返回一个整数值,给出此新回调在任务回调列表中占据的位置。这只是回调的当前位置。只要没有首先从列表中较早位置删除其他值,它就可以用于删除条目。
removeTaskCallback
返回一个逻辑值,指示指定元素是否已被删除。如果给出的名称或索引与列表中元素的名称或位置不对应,则此操作可能会失败(即返回 FALSE
)。
注意
还有 C-level 访问顶级任务回调,以允许使用 C 例程而不是 R 函数。
例子
times <- function(total = 3, str = "Task a") {
ctr <- 0
function(expr, value, ok, visible) {
ctr <<- ctr + 1
cat(str, ctr, "\n")
keep.me <- (ctr < total)
if (!keep.me)
cat("handler removing itself\n")
# return
keep.me
}
}
# add the callback that will work for
# 4 top-level tasks and then remove itself.
n <- addTaskCallback(times(4))
# now remove it, assuming it is still first in the list.
removeTaskCallback(n)
## See how the handler is called every time till "self destruction":
addTaskCallback(times(4)) # counts as once already
sum(1:10) ; mean(1:3) # two more
sinpi(1) # 4th - and "done"
cospi(1)
tanpi(1)
也可以看看
getTaskCallbackNames
taskCallbackManager
https://developer.r-project.org/TaskHandlers.pdf
相关用法
- R taskCallbackManager 创建R级任务回调管理器
- R taskCallbackNames 查询当前内部顶级任务回调名称
- R table 交叉表和表格创建
- R tabulate 向量列表
- R tapply 对不规则数组应用函数
- R toString 将 R 对象转换为字符串或测试字符串
- R tilde 波形符运算符
- R try 尝试允许错误恢复的表达式
- R transform 转换对象,例如 DataFrame
- R textConnection 文本连接
- R tracemem 对象的跟踪复制
- R traceback 获取并打印调用堆栈
- R t 矩阵转置
- R tempfile 为临时文件创建名称
- R typeof 对象的类型
- R trace 函数或方法调用的交互式跟踪和调试
- R timezones 时区
- R trimws 删除前导/尾随空格
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Add or Remove a Top-Level Task Callback。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。