簡體   English   中英

創建任務時會發生什么?

[英]What happens when you create a Task?

public MyClass foo(int parameter)
{
    var foo = new Task<MyClass>(() => bar(parameter));

    try 
    {
        return foo.Result;
    }
}

當我創建一個new Task時,在線程方面會發生什么。

這意味着新線程( B )開始評估bar(parameter)並且主線程( A )進入foo.Result; 他們等到B完成並返回Result

這里

由其公共構造函數創建的任務稱為“冷”任務,因為它們在未計划的TaskStatus.Created狀態下開始其生命周期,直到這些實例被調用Start才開始進行計划

因此,將不會啟動“線程B”(此外,一般情況下為“ 開始新任務”!=“ 開始新線程”)。

當主線程(A)進入foo.Result時; 他們等到B完成並返回結果?

由於將沒有“線程B”,因此線程A將永遠等待。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM