問題バージョン 1、ch_fun() が終了するのを待たずに pr_fun プロセスが返されるようにすることはできますか?
ch_fun <- function() {Sys.sleep(10)}
pr_fun <- function() {ch_fun(); return("Done")}
pr_fun()
問題のある実際のバージョン
svSocket サーバーとしての R セッション 1
library(svSocket)
startSocketServer(port = 9875,local=FALSE)
svSocket クライアントとしての R セッション 2
con <- socketConnection(port = 9875,host="127.0.0.1")
evalServer(con,"Sys.sleep(20)")
svSocket クライアントとしての R セッション 3
con <- socketConnection(port = 9875,host="127.0.0.1")
evalServer(con,"a=10")
セッション 2 のコード行を実行し、サーバーが Sys.sleep 呼び出しを処理している場合、セッション 3 のコード行をセッション 3 にすばやく配置し、まだ処理されている呼び出しを中止します。オブジェクト「a」が作成されたかどうかを確認することで、サーバー側で確認できます。
私のポイントは、ジョブがセッション 3 で終了するのを待つ必要はなかったということですプロセスを待って先に進みます。Ctrl+C または Esc を使用して手動で中止できますが、関数でそれを行うにはどうすればよいですか。pr_fun がサーバー セッションで ch_fun を呼び出し、すぐにそのリターンに進むようにします。