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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。