當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R taskCallbackManager 創建R級任務回調管理器


R語言 taskCallbackManager 位於 base 包(package)。

說明

這提供了一個完全R- 用於管理在每個頂級任務結束時調用的回調或操作的語言機製。本質上,我們注冊一個R來自該管理器的函數具有底層的本機 task-callback 機製,並且該函數在管理器的控製下處理調用其他 R 回調。該管理器由一組函數組成,這些函數訪問共享變量來管理 user-level 回調列表。

用法

taskCallbackManager(handlers = list(), registered = FALSE,
                    verbose = FALSE)

參數

handlers

這可以是一個回調列表,其中每個元素都是一個列表,其中包含一個名為 "f" 的元素(回調函數)和一個名為 "data" 的可選元素,它是回調函數調用時提供給回調函數的第 5 個參數。被調用。通常不指定此參數,並且在創建管理器後使用add 注冊回調。

registered

一個邏輯值,指示evaluate函數是否已在內部任務回調機製中注冊。這通常是FALSE,第一次通過add函數添加回調時,evaluate函數會自動注冊。通過為此參數指定 TRUE 並手動調用 addTaskCallback,可以控製函數何時注冊。

verbose

一個邏輯值,如果是 TRUE ,則會導致將有關此調度管理器執行的某些活動的信息打印到控製台。這對於調試回調和處理程序本身很有用。

list 包含 6 個函數:

add()

向該管理器注冊一個回調,為該函數提供一個可選的第 5 個參數、一個可選名稱(通過該名稱將回調存儲在列表中)以及一個 register 參數,該參數控製 evaluate 函數是否在內部注冊C-level 如有必要,調度機製。

remove()

按名稱或位置/索引從管理器的回調集合中刪除元素。

evaluate()

‘real’ 回調函數,已注冊到 C-level 調度機製,並在此管理器的控製範圍內調用每個 R-level 回調。

suspend()

設置管理器掛起狀態的函數。如果它被掛起,則當任務完成時不會調用任何回調。通過為 status 參數指定邏輯值來設置狀態。

register()

使用內部 C-level 調度機製注冊 evaluate 函數的函數。這是由 add 函數自動完成的,但也可以手動調用。

callbacks()

返回此管理器維護的回調列表。

例子

# create the manager
h <- taskCallbackManager()

# add a callback
h$add(function(expr, value, ok, visible) {
                       cat("In handler\n")
                       return(TRUE)
                     }, name = "simpleHandler")

# look at the internal callbacks.
getTaskCallbackNames()

# look at the R-level callbacks
names(h$callbacks())

removeTaskCallback("R-taskCallbackManager")

參考

Duncan Temple Lang (2001) Top-level Task Callbacks in R, https://developer.r-project.org/TaskHandlers.pdf

也可以看看

addTaskCallbackremoveTaskCallbackgetTaskCallbackNames 和參考。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Create an R-level Task Callback Manager。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。