如何啟動並等待 Task 執行

2022-03-14 02:10:22 字數 1265 閱讀 9298

task.run裡邊可以搭配async,所有由task.run啟動起來的 task 所組成的陣列允許被whenall等待,呼叫執行緒(如ui執行緒)不會阻塞

listtaskarray = new list(3);

taskarray.add(task.run(async() =>

}));

taskarray.add(task.run(async() =>

}));

taskarray.add(task.run(async() =>

}));

task done = task.whenall(taskarray.toarray());

await done.continuewith((t) => "); });

console.writeline("all work done");

如果done換做wait()來等待的話,就會阻塞呼叫執行緒,如果是 ui 執行緒執行wait()的話介面將凍結

task done = task.whenall(taskarray.toarray());

done.wait();

console.writeline("all work done");

如果用startnew()的方法建立並啟動task,想要獲得等待效果方法不能有async修飾

listtaskarray = new list(3);

taskarray.add(task.factory.startnew(() =>

}));

taskarray.add(task.factory.startnew(() =>

}));

taskarray.add(task.factory.startnew(() =>

}));

task.waitall(taskarray.toarray());

console.writeline("all work done");

注意task.delay()沒有await的修飾,如果加入await/async的組合執行後waitall()將失效,這是為什麼呢?不太懂。

Apache 如何手動安裝為服務並啟動執行?

apache 在windows下作為服務執行的命令比較簡單,在進入cmd模式視窗後依次輸入下面的命令即可 1 安裝作為服務 httpd k install 2 啟動服務 net start apache2.2 3 停止服務 net stop apache2.2 4 解除安裝服務 httpd k un...

docker如何啟動容器並執行容器內指令碼

1.問題描述 啟動docker容器後,執行容器內指令碼 2.案例需求 現在需要用docker起乙個centos7的環境,安裝乙個pyhton,跑乙個定時任務,當時執行指令碼。3.解決 開始嘗試 使用systemctl 啟動crond 執行pyhton專案指令碼,結果docker容器中沒有system...

讓 VAGRANT 啟動並執行起來

vagrant是構建在虛擬化技術之上的虛擬機器執行環境管理工具。通過vagrant可以方便實現的對虛擬機器的管理,包括建立和刪除虛擬機器 配置虛擬機器執行引數 管理虛擬機器執行狀態 自動化配置和安裝開發環境必須的各類軟體 打包和分發虛擬機器執行環境等。vagrant的執行,需要依賴某項具體的虛擬化技...