Stephen Toub giải thích rõ điều này in his blog post on the subject.
Parent and child tasks là hơi phổ biến khi sử dụng Task
s theo cách song song. Lưu ý rằng khi một phụ huynh Task
có con, ngữ nghĩa hoàn thành của phụ huynh thay đổi một cách tinh tế.
Nhiệm vụ cha/mẹ gần như không bao giờ được sử dụng khi sử dụng Task
s theo kiểu async
. Trong thế giới async
, bạn có một loại "mối quan hệ cha mẹ/con hợp lý" khi một phương thức async
gọi một phương thức khác, nhưng nó không thực sự được triển khai bằng cách sử dụng nhiệm vụ cha/con.
Thông thường, Task
được thiết kế để sử dụng trong mã async
không mong muốn có ngữ nghĩa hoàn thành được thay đổi bởi nhiệm vụ con đính kèm với nó. Do đó, mặc định mới cho Task.Run
là DenyChildAttach
, điều này ngăn cản bất kỳ tác vụ con nào cố đính kèm.
Nguồn
2013-05-11 19:45:22