เชนเซเช เชฎเซเชณ เชฒเซเช Habr เชชเชฐ เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเซ เชฐเชนเซเชฏเซ เชเซเช, เชเซเชจเซ เช
เชจเซเชตเชพเชฆ เชเซเชฐเซเชชเซเชฐเซเชเชฎเชพเช เชชเซเชธเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชเซ
เช
เชนเซเช เช
เชจเซ เชนเชตเซ เชชเชฐเชฟเชฃเชพเชฎเชจเซ เชฐเชพเชน เชเซเชฏเชพ เชตเชฟเชจเชพ, เช
เชธเซเชฎเซเชณ เชฐเซเชคเซ เชเชเชเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เช
เชฅเชตเชพ เชคเซ เชเชฐเซ เชฐเชนเซเชฒเชพ เชเชฃเชพ เชเชเชฎเซ เชตเชเซเชเซ เชฎเซเชเชพ เชเชพเชฐเซเชฏเชจเซ เชตเชฟเชญเชพเชเชฟเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชเชฎเซเชชเซเชฏเซเชเชฐเชจเชพ เชเชเชฎเชจ เชชเชนเซเชฒเชพเช เช
เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชเซ. เชคเซเชฎเชจเชพ เชเชเชฎเชจ เชธเชพเชฅเซ, เช เชเชฐเซเชฐเชฟเชฏเชพเชค เชเซเชฌ เช เชฎเซเชฐเซเชค เชฌเชจเซ เชนเชคเซ. เชนเชตเซ, 2019 เชฎเชพเช, เชนเซเช เช เชฒเซเช 8-เชเซเชฐ เชเชจเซเชเซเชฒ เชเซเชฐ เชชเซเชฐเซเชธเซเชธเชฐ เชธเชพเชฅเซ เชฒเซเชชเชเซเชช เชชเชฐ เชเชพเชเชช เชเชฐเซ เชฐเชนเซเชฏเซ เชเซเช, เชเซเชจเชพ เชชเชฐ เชธเซ เชเชฐเชคเชพเช เชตเชงเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเช เชธเชฎเชพเชเชคเชฐ เชเชพเชฒเซ เชฐเชนเซ เชเซ, เช
เชจเซ เชคเซเชจเชพเชฅเซ เชชเชฃ เชตเชงเซ เชฅเซเชฐเซเชกเซ. เชจเชเซเชเชฎเชพเช, เชฅเซเชกเซ เชเซเชเชฅเชฐเซเชนเชพเชฒ เชซเซเชจ เชเซ, เชเซ เชฅเซเชกเชพ เชตเชฐเซเชทเซ เชชเชนเซเชฒเชพ เชเชฐเซเชฆเซเชฏเซ เชนเชคเซ, เชคเซเชฎเชพเช 8-เชเซเชฐ เชชเซเชฐเซเชธเซเชธเชฐ เชฌเซเชฐเซเชก เชชเชฐ เชเซ. เชตเชฟเชทเชฏเซเชจเซเช เชธเชเชธเชพเชงเชจเซ เชฒเซเชเซ เช
เชจเซ เชตเชฟเชกเชฟเชเชเชฅเซ เชญเชฐเซเชฒเชพ เชเซ เชเซเชฏเชพเช เชคเซเชฎเชจเชพ เชฒเซเชเชเซ เช เชตเชฐเซเชทเชจเชพ เชซเซเชฒเซเชเชถเชฟเชช เชธเซเชฎเชพเชฐเซเชเชซเซเชจเซเชธเชจเซ เชชเซเชฐเชถเชเชธเชพ เชเชฐเซ เชเซ เชเซ 16-เชเซเชฐ เชชเซเชฐเซเชธเซเชธเชฐ เชงเชฐเชพเชตเซ เชเซ. MS Azure 20 เชเซเชฐ เชชเซเชฐเซเชธเซเชธเชฐ เช
เชจเซ 128 TB RAM เชธเชพเชฅเซเชจเซเช เชตเชฐเซเชเซเชฏเซเช
เชฒ เชฎเชถเซเชจ $2/เชเชฒเชพเชเชฅเซ เชเชเชพ เชธเชฎเชฏเชฎเชพเช เชชเซเชฐเซเช เชชเชพเชกเซ เชเซ. เชเชฎเชจเชธเซเชฌเซ, เชฅเซเชฐเซเชกเซเชจเซ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพเชจเซ เชธเชเชเชพเชฒเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชธเชฎเชฐเซเชฅ เชฅเชฏเชพ เชตเชฟเชจเชพ เชฎเชนเชคเซเชคเชฎ เชฎเซเชณเชตเชตเชพ เช
เชจเซ เช เชถเชเซเชคเชฟเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เช
เชถเชเซเชฏ เชเซ.
เชชเชฐเชฟเชญเชพเชทเชพ
เชชเซเชฐเชเซเชฐเชฟเชฏเชพ - OS เชเชฌเซเชเซเชเซเช, เช
เชฒเช เชธเชฐเชจเชพเชฎเชพเชเชจเซ เชเชเซเชฏเชพ, เชฅเซเชฐเซเชกเซ เชงเชฐเชพเชตเซ เชเซ.
เชฅเซเชฐเซเชก - เชเช OS เชเชฌเซเชเซเชเซเช, เชเชเซเชเซเชเซเชฏเซเชถเชจเชจเซเช เชธเซเชฅเซ เชจเชพเชจเซเช เชเชเชฎ, เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชญเชพเช, เชฅเซเชฐเซเชกเซ เชเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เช
เชเชฆเชฐ เชฎเซเชฎเชฐเซ เช
เชจเซ เช
เชจเซเชฏ เชธเชเชธเชพเชงเชจเซ เชเชเชฌเซเชเชพเชฎเชพเช เชตเชนเซเชเชเซ เชเซ.
เชฎเชฒเซเชเซเชเชพเชธเซเชเซเชเช - เชเชเชธ เชชเซเชฐเซเชชเชฐเซเชเซ, เชเชเชธเชพเชฅเซ เช
เชจเซเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพเช เชเชฒเชพเชตเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ
เชฎเชฒเซเชเซ-เชเซเชฐ - เชชเซเชฐเซเชธเซเชธเชฐเชจเซ เชฎเชฟเชฒเชเชค, เชกเซเชเชพ เชชเซเชฐเซเชธเซเชธเชฟเชเช เชฎเชพเชเซ เชเชฃเชพ เชเซเชฐเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ
เชฎเชฒเซเชเชฟเชชเซเชฐเซเชธเซเชธเชฟเชเช - เชเชฎเซเชชเซเชฏเซเชเชฐเชจเซ เชฎเชฟเชฒเชเชค, เชถเชพเชฐเซเชฐเชฟเช เชฐเซเชคเซ เชเชฃเชพ เชชเซเชฐเซเชธเซเชธเชฐเซ เชธเชพเชฅเซ เชเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ
เชฎเชฒเซเชเชฟเชฅเซเชฐเซเชกเซเชเช - เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชฎเชฟเชฒเชเชค, เชตเชฟเชตเชฟเชง เชฅเซเชฐเซเชกเซ เชตเชเซเชเซ เชกเซเชเชพ เชชเซเชฐเซเชธเซเชธเชฟเชเชเชจเซ เชตเชฟเชคเชฐเชฟเชค เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ.
เชธเชฎเชพเชเชคเชฐเชตเชพเชฆ - เชธเชฎเชฏเชจเชพ เชเชเชฎ เชฆเซเช เชถเชพเชฐเซเชฐเชฟเช เชฐเซเชคเซ เชเช เชธเชพเชฅเซ เช
เชจเซเช เชเซเชฐเชฟเชฏเชพเช เชเชฐเชตเซ
เช
เชธเชฟเชเชเซเชฐเซเชจเซ - เช เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชชเซเชฐเซเชฃ เชฅเชตเชพเชจเซ เชฐเชพเชน เชเซเชฏเชพ เชตเชฟเชจเชพ เชเชชเชฐเซเชถเชจเชจเซเช เช
เชฎเชฒเซเชเชฐเชฃ; เช
เชฎเชฒเชจเชพ เชชเชฐเชฟเชฃเชพเชฎ เชชเชฐ เชชเชเซเชฅเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชถเชเชพเชฏ เชเซ.
เชฐเซเชชเช
เชฌเชงเซ เชตเซเชฏเชพเชเซเชฏเชพเช เชธเชพเชฐเซ เชจเชฅเซ เชนเซเชคเซ เช เชจเซ เชเซเชเชฒเซเชเชจเซ เชตเชงเชพเชฐเชพเชจเซ เชธเชฎเชเซเชคเซเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชเซ, เชคเซเชฅเซ เชนเซเช เชเชชเชเชพเชฐเชฟเช เชฐเซเชคเซ เชฐเชเซ เชเชฐเชพเชฏเซเชฒ เชชเชฐเชฟเชญเชพเชทเชพเชฎเชพเช เชจเชพเชธเซเชคเซ เชฐเชพเชเชงเชตเชพ เชตเชฟเชถเซ เชเช เชฐเซเชชเช เชเชฎเซเชฐเซเชถ. เช เชฐเซเชชเชเชฎเชพเช เชจเชพเชธเซเชคเซ เชฐเชพเชเชงเชตเชพ เช เชเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเซ.
เชธเชตเชพเชฐเซ เชจเชพเชธเซเชคเซ เชฌเชจเชพเชตเชคเซ เชตเชเชคเซ เชนเซเช (เชธเซ.เชชเซ.เชฏเซ) เชนเซเช เชฐเชธเซเชกเชพเชฎเชพเช เชเชตเซเช เชเซเช (เชเชฎเซเชชเซเชฏเซเชเชฐ). เชฎเชพเชฐเซ เชชเชพเชธเซ 2 เชนเชพเชฅ เชเซ (เชเซเชฐเซ). เชฐเชธเซเชกเชพเชฎเชพเช เชธเชเชเซเชฏเชพเชฌเชเชง เชเชชเชเชฐเชฃเซ เชเซ (IO): เชเชตเชจ, เชเซเชเชฒ, เชเซเชธเซเชเชฐ, เชฐเซเชซเซเชฐเชฟเชเชฐเซเชเชฐ. เชนเซเช เชเซเชธ เชเชพเชฒเซ เชเชฐเซเช เชเซเช, เชคเซเชจเชพ เชชเชฐ เชซเซเชฐเชพเชเชเช เชชเชพเชจ เชฎเซเชเซเช เชเซเช เช เชจเซ เชคเซ เชเชฐเชฎ เชฅเชตเชพเชจเซ เชฐเชพเชน เชเซเชฏเชพ เชตเชฟเชจเชพ เชคเซเชฎเชพเช เชคเซเชฒ เชฐเซเชกเซเช เชเซเช (เช เชธเซเชฎเซเชณ เชฐเซเชคเซ, เชฌเชฟเชจ-เช เชตเชฐเซเชงเชฟเชค-IO-เชชเซเชฐเชคเซเชเซเชทเชพ), เชนเซเช เชเชเชกเชพเชจเซ เชฐเซเชซเซเชฐเชฟเชเชฐเซเชเชฐเชฎเชพเชเชฅเซ เชฌเชนเชพเชฐ เชเชพเชขเซเช เชเซเช เช เชจเซ เชคเซเชจเซ เชชเซเชฒเซเชเชฎเชพเช เชคเซเชกเซ เชจเชพเชเซเช เชเซเช, เชชเชเซ เชคเซเชจเซ เชเช เชนเชพเชฅเชฅเซ เชนเชฐเชพเชตเซเช เชเซเช (เชฅเซเชฐเซเชก #1), เช เชจเซ เชฌเซเชเซเช (เชฅเซเชฐเซเชก #2) เชชเซเชฒเซเช เชนเซเชฒเซเชกเชฟเชเช (เชถเซเชฐเซเชก เชฐเชฟเชธเซเชฐเซเชธ). เชนเชตเซ เชนเซเช เชเซเชเชฒ เชเชพเชฒเซ เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช, เชชเชฐเชเชคเซ เชฎเชพเชฐเซ เชชเชพเชธเซ เชชเซเชฐเชคเชพ เชนเชพเชฅ เชจเชฅเซ (เชฅเซเชฐเซเชก เชญเซเชเชฎเชฐเซ) เช เชธเชฎเชฏ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชซเซเชฐเชพเชเชเช เชชเชพเชจ เชเชฐเชฎ เชฅเชพเชฏ เชเซ (เชชเชฐเชฟเชฃเชพเชฎ เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ) เชเซเชฎเชพเช เชฎเซเช เชเซ เชเชพเชฌเซเช เชฎเชพเชฐเซเชฏเซเช เชเซ เชคเซ เชฐเซเชกเชตเซเช. เชนเซเช เชเซเชเชฒเซ เชธเซเชงเซ เชชเชนเซเชเชเซเช เชเซเช เช เชจเซ เชคเซเชจเซ เชเชพเชฒเซ เชเชฐเซเช เชเซเช เช เชจเซ เชฎเซเชฐเซเชเชคเชพเชชเซเชฐเซเชตเช เชคเซเชฎเชพเช เชชเชพเชฃเซ เชเชเชณเชคเซเช เชเซเชเช เชเซเช (เช เชตเชฐเซเชงเชฟเชค-IO-เชชเซเชฐเชคเซเชเซเชทเชพ), เชเซ เชเซ เช เชธเชฎเชฏ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชคเซ เชเซเชฏเชพเช เชเชฎเซเชฒเซเช เชเชพเชฌเซเช เชฎเชพเชฐเชคเซ เชนเชคเซ เชคเซ เชชเซเชฒเซเช เชงเซเช เชถเชเชคเซ เชนเชคเซ.
เชฎเซเช เชซเชเซเชค 2 เชนเชพเชฅเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฎเซเชฒเซเช เชฐเชพเชเชงเซเชฏเซเช, เช เชจเซ เชฎเชพเชฐเซ เชชเชพเชธเซ เชตเชงเซ เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเซ เช เชธเชฎเชฏเซ, เชเชฎเซเชฒเซเชเชจเซ เชเชพเชฌเซเช เชฎเชพเชฐเชตเชพเชจเซ เชเซเชทเชฃเซ, เชเช เชธเชพเชฅเซ 3 เชเชชเชฐเซเชถเชจ เชฅเชฏเชพ: เชเชฎเซเชฒเซเชเชจเซ เชเชพเชฌเซเช เชฎเชพเชฐเชตเซ, เชชเซเชฒเซเช เชชเชเชกเชตเซ, เชซเซเชฐเชพเชเชเช เชชเชพเชจ เชเชฐเชฎ เชเชฐเชตเซ CPU เช เชเซเชฎเซเชชเซเชฏเซเชเชฐเชจเซ เชธเซเชฅเซ เชเชกเชชเซ เชญเชพเช เชเซ, IO เช เชเซ เชเซ เชฎเซเชเชพเชญเชพเชเซ เชฌเชงเซเช เชงเซเชฎเซเช เชชเชกเซ เชเชพเชฏ เชเซ, เชคเซเชฅเซ เชเชฃเซ เชตเชเชค เช เชธเชฐเชเชพเชฐเช เชเชเซเชฒ เช เชเซ เชเซ IO เชฎเชพเชเชฅเซ เชกเซเชเชพ เชชเซเชฐเชพเชชเซเชค เชเชฐเชคเซ เชตเชเชคเซ CPU เชจเซ เชเชเชเช เชธเชพเชฅเซ เชเชฌเชเซ เชเชฐเชตเซเช.
เชฐเซเชชเช เชเชพเชฒเซ เชฐเชพเชเชตเซเช:
- เชเซ เชเชฎเชฒเซเช เชคเซเชฏเชพเชฐ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชฎเชพเช, เชนเซเช เชเชชเชกเชพเช เชฌเชฆเชฒเชตเชพเชจเซ เชชเชฃ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชถ, เชคเซ เช เชฎเชฒเซเชเชฟเชเชพเชธเซเชเชฟเชเชเชจเซเช เชเชฆเชพเชนเชฐเชฃ เชนเชถเซ. เชเช เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชธเซเชเซเชทเซเชฎเชคเชพ: เชเชฎเซเชชเซเชฏเซเชเชฐเซเชธ เชเชฎเชพเช เชฒเซเชเซ เชเชฐเชคเชพเช เชตเชงเซ เชธเชพเชฐเชพ เชเซ.
- เชเชฃเชพ เชฐเชธเซเชเชฏเชพเช เชธเชพเชฅเซเชจเซเช เชฐเชธเซเชกเซเช, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ เชฐเซเชธเซเชเซเชฐเชจเซเชเชฎเชพเช - เชฎเชฒเซเชเชฟ-เชเซเชฐ เชเชฎเซเชชเซเชฏเซเชเชฐ.
- เชถเซเชชเชฟเชเช เชธเซเชจเซเชเชฐเชฎเชพเช เชซเซเชก เชเซเชฐเซเชเชฎเชพเช เชเชฃเซ เชฐเซเชธเซเชเซเชฐเชพเช - เชกเซเชเชพ เชธเซเชจเซเชเชฐ
.NET เชธเชพเชงเชจเซ
.NET เช เชจเซเชฏ เชเชฃเซ เชตเชธเซเชคเซเชเชจเซ เชเซเชฎ เชฅเซเชฐเซเชกเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชฎเชพเช เชธเชพเชฐเซเช เชเซ. เชฆเชฐเซเช เชจเชตเชพ เชธเชเชธเซเชเชฐเชฃ เชธเชพเชฅเซ, เชคเซ เชคเซเชฎเชจเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชงเซ เช เชจเซ เชตเชงเซ เชจเชตเชพ เชธเชพเชงเชจเซ เชฐเชเซ เชเชฐเซ เชเซ, OS เชฅเซเชฐเซเชกเซ เชชเชฐ เช เชฎเซเชฐเซเชคเชคเชพเชจเชพ เชจเชตเชพ เชธเซเชคเชฐเซ. เชเชฌเซเชธเซเชเซเชฐเซเชเซเชถเชจเชจเชพ เชจเชฟเชฐเซเชฎเชพเชฃ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชคเซ เชตเชเชคเซ, เชซเซเชฐเซเชฎเชตเชฐเซเช เชกเซเชตเชฒเชชเชฐเซเชธ เชเชตเชพ เช เชญเชฟเชเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เชเซ เชคเชเชจเซ เชเซเชกเซ เชเซ, เชเซเชฏเชพเชฐเซ เชเชเซเช-เชธเซเชคเชฐเชจเชพ เชเชฌเซเชธเซเชเซเชฐเซเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชเช เช เชฅเชตเชพ เชตเชงเซ เชธเซเชคเชฐเซ เชจเซเชเซ เชเชตเชพ เชฎเชพเชเซ. เชฎเซเชเซเชญเชพเชเซ เช เชเชฐเซเชฐเซ เชจเชฅเซ, เชนเชเซเชเชคเชฎเชพเช เชคเซ เชถเซเชเชเชจ เชตเชกเซ เชชเซเชคเชพเชจเซ เชชเชเชฎเชพเช เชเซเชณเซเชฌเชพเชฐ เชเชฐเชตเชพเชจเซ เชฆเชฐเชตเชพเชเซ เชเซเชฒเซ เชเซ, เชชเชฐเชเชคเซ เชเซเชเชฒเซเชเชตเชพเชฐ, เชญเชพเชเซเชฏเซ เช เชเชฟเชธเซเชธเชพเชเชฎเชพเช, เชคเซ เชธเชฎเชธเซเชฏเชพเชจเซ เชนเชฒ เชเชฐเชตเชพเชจเซ เชเชเชฎเชพเชคเซเชฐ เชฐเชธเซเชคเซ เชนเซเช เชถเชเซ เชเซ เชเซ เชตเชฐเซเชคเชฎเชพเชจ เช เชฎเซเชฐเซเชคเชคเชพเชจเชพ เชธเซเชคเชฐเซ เชเชเซเชฒเซ เชถเชเชพเชคเซ เชจเชฅเซ. .
เชเซเชฒเซเชธ เชฆเซเชตเชพเชฐเชพ, เชฎเชพเชฐเซ เชฎเชคเชฒเชฌ เชซเซเชฐเซเชฎเชตเชฐเซเช เช เชจเซ เชคเซเชคเซเชฏ-เชชเชเซเชท เชชเซเชเซเชเซ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซเชฒ เชเชชเซเชฒเชฟเชเซเชถเชจ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชเชจเซเชเชฐเชซเซเชธ (APIs), เชคเซเชฎเช เชธเชฎเชเซเชฐ เชธเซเชซเซเชเชตเซเชฐ เชธเซเชฒเซเชฏเซเชถเชจเซเชธ เชเซ เชเซ เชฎเชฒเซเชเซ-เชฅเซเชฐเซเชกเซเชก เชเซเชกเชจเซ เชฒเชเชคเซ เชเซเชเชชเชฃ เชธเชฎเชธเซเชฏเชพเช เชฎเชพเชเซ เชถเซเชงเชจเซ เชธเชฐเชณ เชฌเชจเชพเชตเซ เชเซ.
เชเช เชฅเซเชฐเซเชก เชถเชฐเซ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช
เชฅเซเชฐเซเชก เชเซเชฒเชพเชธ .NET เชฎเชพเช เชฅเซเชฐเซเชกเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชธเซเชฅเซ เชฎเซเชณเชญเซเชค เชตเชฐเซเช เชเซ. เชเชจเซเชธเซเชเซเชฐเชเซเชเชฐ เชฌเซเชฎเชพเชเชฅเซ เชเช เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟ เชธเซเชตเซเชเชพเชฐเซ เชเซ:
- เชฅเซเชฐเซเชกเชธเซเชเชพเชฐเซเช - เชเซเช เชชเชฐเชฟเชฎเชพเชฃเซ เชจเชฅเซ
- ParametrizedThreadStart - เชชเซเชฐเชเชพเชฐ เชเชฌเซเชเซเชเซเชเชจเชพ เชเช เชชเชฐเชฟเชฎเชพเชฃ เชธเชพเชฅเซ.
เชธเซเชเชพเชฐเซเช เชฎเซเชฅเชกเชจเซ เชเซเชฒ เชเชฐเซเชฏเชพ เชชเชเซ เชกเซเชฒเชฟเชเซเชเชจเซ เชจเชตเชพ เชฌเชจเชพเชตเซเชฒเชพ เชฅเซเชฐเซเชกเชฎเชพเช เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ. เชเซ ParametrizedThreadStart เชชเซเชฐเชเชพเชฐเชจเซเช เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟ เชเชจเซเชธเซเชเซเชฐเชเซเชเชฐเชจเซ เชชเชพเชธ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเซเชฏ, เชคเซ เชเชฌเซเชเซเชเซเช เชธเซเชเชพเชฐเซเช เชฎเซเชฅเชกเชฎเชพเช เชชเชพเชธ เชฅเชตเซ เชเซเชเช. เชเซเชเชชเชฃ เชธเซเชฅเชพเชจเชฟเช เชฎเชพเชนเชฟเชคเซเชจเซ เชธเซเชเซเชฐเซเชฎเชฎเชพเช เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เช เชชเชฆเซเชงเชคเชฟ เชเชฐเซเชฐเซ เชเซ. เชคเซ เชจเซเชเชงเชตเซเช เชฏเซเชเซเชฏ เชเซ เชเซ เชฅเซเชฐเซเชก เชฌเชจเชพเชตเชตเซ เช เชเช เชเชฐเซเชเชพเชณ เชเชพเชฎเชเซเชฐเซ เชเซ, เช เชจเซ เชฅเซเชฐเซเชก เชชเซเชคเซ เชเช เชญเชพเชฐเซ เชชเชฆเชพเชฐเซเชฅ เชเซ, เชเชเชพเชฎเชพเช เชเชเซเช เชเชพเชฐเชฃ เชเซ เชคเซ เชธเซเชเซเช เชชเชฐ 1MB เชฎเซเชฎเชฐเซ เชซเชพเชณเชตเซ เชเซ เช เชจเซ OS API เชธเชพเชฅเซ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพเชจเซ เชเชฐเซเชฐ เชเซ.
new Thread(...).Start(...);
เชฅเซเชฐเซเชกเชชเซเชฒ เชตเชฐเซเช เชชเซเชฒเชจเชพ เชเซเชฏเชพเชฒเชจเซ เชฐเชเซ เชเชฐเซ เชเซ. .NET เชฎเชพเช, เชฅเซเชฐเซเชก เชชเซเชฒ เช เชเชจเซเชเชฟเชจเชฟเชฏเชฐเชฟเชเชเชจเซ เชเช เชญเชพเช เชเซ, เช เชจเซ เชฎเชพเชเชเซเชฐเซเชธเซเชซเซเชเชจเชพ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชเช เชคเซ เชธเซเชจเชฟเชถเซเชเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฃเชพ เชชเซเชฐเชฏเชคเซเชจเซ เชเชฐเซเชฏเชพ เชเซ เชเซ เชคเซ เชตเชฟเชตเชฟเชง เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชเชฎเชพเช เชถเซเชฐเซเชทเซเช เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ.
เชธเชพเชฎเชพเชจเซเชฏ เชเซเชฏเชพเชฒ:
เชเชชเซเชฒเชฟเชเซเชถเชจ เชถเชฐเซ เชฅเชพเชฏ เชคเซ เชเซเชทเชฃเชฅเซ, เชคเซ เชชเซเชทเซเช เชญเซเชฎเชฟเชฎเชพเช เช เชจเชพเชฎเชคเชฎเชพเช เชเชฃเชพ เชฅเซเชฐเซเชกเซ เชฌเชจเชพเชตเซ เชเซ เช เชจเซ เชคเซเชฎเชจเซ เชเชชเชฏเซเช เชฎเชพเชเซ เชฒเช เชเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ. เชเซ เชฅเซเชฐเซเชกเซเชจเซ เชตเชพเชฐเชเชตเชพเชฐ เช เชจเซ เชฎเซเชเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซ เชชเซเชฒ เชเซเชฒเชฐเชจเซ เชเชฐเซเชฐเชฟเชฏเชพเชคเซเชจเซ เชชเชนเซเชเชเซ เชตเชณเชตเชพ เชตเชฟเชธเซเชคเชฐเซ เชเซ. เชเซเชฏเชพเชฐเซ เชฏเซเชเซเชฏ เชธเชฎเชฏเซ เชชเซเชฒเชฎเชพเช เชเซเช เชฎเซเชเซเชค เชฅเซเชฐเซเชกเซ เชจ เชนเซเชฏ, เชคเซเชฏเชพเชฐเซ เชคเซ เชเชพเช เชคเซ เชเช เชฅเซเชฐเซเชกเซเชจเชพ เชชเชพเชเชพ เชเชตเชตเชพเชจเซ เชฐเชพเชน เชเซเชถเซ เช เชฅเชตเชพ เชเช เชจเชตเซ เชฌเชจเชพเชตเชถเซ. เชคเซ เช เชจเซเชธเชฐเซ เชเซ เชเซ เชฅเซเชฐเซเชก เชชเซเชฒ เชเซเชเชฒเซเช เชเซเชเชเชพ เชเชพเชณเชพเชจเซ เชเซเชฐเชฟเชฏเชพเช เชฎเชพเชเซ เชเชคเซเชคเชฎ เชเซ เช เชจเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเชพ เชธเชฎเชเซเชฐ เชเชชเชฐเซเชถเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชธเซเชตเชพเช เชคเชฐเซเชเซ เชเชพเชฒเชคเซ เชเชพเชฎเชเซเชฐเซ เชฎเชพเชเซ เชเชฐเชพเชฌ เชฐเซเชคเซ เช เชจเซเชเซเชณ เชเซ.
เชชเซเชฒเชฎเชพเชเชฅเซ เชฅเซเชฐเซเชกเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเซเชฏเชพเช เชเช QueueUserWorkItem เชชเชฆเซเชงเชคเชฟ เชเซ เชเซ WaitCallback เชชเซเชฐเชเชพเชฐเชจเชพ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชจเซ เชธเซเชตเซเชเชพเชฐเซ เชเซ, เชเซ ParametrizedThreadStart เชเซเชตเซ เช เชธเชนเซ เชงเชฐเชพเชตเซ เชเซ เช เชจเซ เชคเซเชจเซ เชชเชธเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒ เชชเชฐเชฟเชฎเชพเชฃ เชธเชฎเชพเชจ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ.
ThreadPool.QueueUserWorkItem(...);
เชเชเซ เชเชพเชฃเซเชคเซ เชฅเซเชฐเซเชก เชชเซเชฒ เชชเชฆเซเชงเชคเชฟ RegisterWaitForSingleObject เชจเซ เชเชชเชฏเซเช เชฌเชฟเชจ-เช เชตเชฐเซเชงเชฟเชค IO เชเชพเชฎเชเซเชฐเซเชจเซ เชเซเช เชตเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ. เชเซเชฏเชพเชฐเซ เชตเซเชเชเชนเซเชจเซเชกเชฒ เชชเชฆเซเชงเชคเชฟเชจเซ เชชเชธเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชคเซเชฏเชพเชฐเซ เช เชชเชฆเซเชงเชคเชฟเชฎเชพเช เชชเชธเชพเชฐ เชเชฐเชพเชฏเซเชฒ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชจเซ เชเชนเซเชตเชพเชฎเชพเช เชเชตเชถเซ.
ThreadPool.RegisterWaitForSingleObject(...)
.NET เชชเชพเชธเซ เชฅเซเชฐเซเชก เชเชพเชเชฎเชฐ เชเซ เช เชจเซ เชคเซ WinForms/WPF เชเชพเชเชฎเชฐเชฅเซ เช เชฒเช เชเซ เชเซ เชคเซเชจเชพ เชนเซเชจเซเชกเชฒเชฐเชจเซ เชชเซเชฒเชฎเชพเชเชฅเซ เชฒเซเชงเซเชฒเชพ เชฅเซเชฐเซเชก เชชเชฐ เชฌเซเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ.
System.Threading.Timer
เชชเซเชฒเชฎเชพเชเชฅเซ เชฅเซเชฐเซเชก เชชเชฐ เชเชเซเชเซเชเซเชฏเซเชถเชจ เชฎเชพเชเซ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟ เชฎเซเชเชฒเชตเชพเชจเซ เชเช เชตเชฟเชเชฟเชคเซเชฐ เชฐเซเชค เชชเชฃ เชเซ - BeginInvoke เชชเชฆเซเชงเชคเชฟ.
DelegateInstance.BeginInvoke
เชนเซเช เชธเชเชเซเชทเชฟเชชเซเชคเชฎเชพเช เชคเซ เชเชพเชฐเซเชฏ เชชเชฐ เชงเซเชฏเชพเชจ เชเชชเชตเชพ เชฎเชพเชเชเซ เชเซเช เชเซ เชเซเชจเชพ เชฎเชพเชเซ เชเชชเชฐเชจเซ เชเชฃเซ เชชเชฆเซเชงเชคเชฟเช เชเชนเซ เชถเชเชพเชฏ - Kernel32.dll Win32 API เชฅเซ CreateThread. เช เชเชพเชฐเซเชฏเชจเซ เชเซเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ, เชฌเชพเชนเซเชฏ เชชเชฆเซเชงเชคเชฟเชเชจเชพ เชฎเชฟเชเซเชจเชฟเชเชฎเชจเซ เชเชญเชพเชฐเซ เชเช เชฎเชพเชฐเซเช เชเซ. เชฎเซเช เชฒเซเชเชธเซ เชเซเชกเชจเชพ เชญเชฏเชเชเชฐ เชเชฆเชพเชนเชฐเชฃเชฎเชพเช เชซเชเซเชค เชเช เช เชตเชพเชฐ เชเชตเซ เชเซเชฒ เชเซเชฏเซ เชเซ, เช เชจเซ เชฒเซเชเชเชจเซ เชชเซเชฐเซเชฐเชฃเชพ เชเซเชฃเซ เช เชฌเชฐเชพเชฌเชฐ เชเชฐเซเชฏเซเช เชคเซ เชนเชเซ เชชเชฃ เชฎเชพเชฐเชพ เชฎเชพเชเซ เชเช เชฐเชนเชธเซเชฏ เชเซ.
Kernel32.dll CreateThread
เชฅเซเชฐเซเชกเซ เชเซเชตเชพ เช เชจเซ เชกเซเชฌเชเซเชเช
เชคเชฎเชพเชฐเชพ เชฆเซเชตเชพเชฐเชพ เชฌเชจเชพเชตเซเชฒ เชฅเซเชฐเซเชกเซ, เชฌเชงเชพ เชคเซเชคเซเชฏ-เชชเชเซเชท เชเชเชเซ เช เชจเซ .NET เชชเซเชฒ เชตเชฟเชเซเชฏเซเช เชฒ เชธเซเชเซเชกเชฟเชฏเซเชจเซ เชฅเซเชฐเซเชกเซเชธ เชตเชฟเชเชกเซเชฎเชพเช เชเซเช เชถเชเชพเชฏ เชเซ. เชเซเชฏเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชกเซเชฌเช เชนเซเช เชณ เชนเซเชฏ เช เชจเซ เชฌเซเชฐเซเช เชฎเซเชกเชฎเชพเช เชนเซเชฏ เชคเซเชฏเชพเชฐเซ เช เช เชตเชฟเชจเซเชกเซ เชฅเซเชฐเซเชก เชฎเชพเชนเชฟเชคเซ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเชถเซ. เช เชนเซเช เชคเชฎเซ เชฆเชฐเซเช เชฅเซเชฐเซเชกเชจเชพ เชธเซเชเซเช เชจเชพเชฎเซ เช เชจเซ เชชเซเชฐเชพเชฅเชฎเชฟเชเชคเชพเชเชจเซ เชธเชนเซเชฒเชพเชเชฅเซ เชเซเช เชถเชเซ เชเซ เช เชจเซ เชกเชฟเชฌเชเซเชเชเชจเซ เชเซเชเซเชเชธ เชฅเซเชฐเซเชก เชชเชฐ เชธเซเชตเชฟเช เชเชฐเซ เชถเชเซ เชเซ. เชฅเซเชฐเซเชก เชตเชฐเซเชเชจเซ เชชเซเชฐเชพเชงเชพเชจเซเชฏเชคเชพ เชเซเชฃเชงเชฐเซเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ, เชคเชฎเซ เชฅเซเชฐเซเชกเชจเซ เชชเซเชฐเชพเชงเชพเชจเซเชฏเชคเชพ เชธเซเช เชเชฐเซ เชถเชเซ เชเซ, เชเซเชจเซ OC เช เชจเซ CLR เชเซเชฏเชพเชฐเซ เชฅเซเชฐเซเชกเซ เชตเชเซเชเซ เชชเซเชฐเซเชธเซเชธเชฐเชจเซ เชธเชฎเชฏ เชตเชฟเชญเชพเชเชฟเชค เชเชฐเชคเซ เชตเชเชคเซ เชญเชฒเชพเชฎเชฃ เชคเชฐเซเชเซ เชธเชฎเชเชถเซ.
เชเชพเชฐเซเชฏ เชธเชฎเชพเชเชคเชฐ เชชเซเชธเซเชคเชเชพเชฒเชฏ
เชเชพเชธเซเช เชชเซเชฐเซเชฒเชฒ เชฒเชพเชเชฌเซเชฐเซเชฐเซ (TPL) .NET 4.0 เชฎเชพเช เชฐเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ. เชนเชตเซ เชคเซ เช เชธเชฟเชเชเซเชฐเซเชจเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซเชจเซเช เชชเซเชฐเชฎเชพเชฃเชญเซเชค เช เชจเซ เชฎเซเชเซเชฏ เชธเชพเชงเชจ เชเซ. เชเซเชเชชเชฃ เชเซเชก เชเซ เชเซ เชเซเชจเชพ เช เชญเชฟเชเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เชคเซเชจเซ เชตเชพเชฐเชธเซ เชเชฃเชตเชพเชฎเชพเช เชเชตเซ เชเซ. TPL เชจเซเช เชฎเซเชณเชญเซเชค เชเชเชฎ System.Threading.Tasks เชจเซเชฎเชธเซเชชเซเชธเชฎเชพเชเชฅเซ เชเชพเชฐเซเชฏ เชตเชฐเซเช เชเซ. เชเชพเชฐเซเชฏ เช เชฅเซเชฐเซเชก เชชเชฐเชจเซเช เช เชฎเซเชฐเซเชค เชเซ. C# เชญเชพเชทเชพเชจเชพ เชจเชตเชพ เชธเชเชธเซเชเชฐเชฃ เชธเชพเชฅเซ, เช เชฎเชจเซ Tasks - async/await operators เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชจเซ เชเช เชญเชตเซเชฏ เชฐเซเชค เชฎเชณเซ เชเซ. เช เชตเชฟเชญเชพเชตเชจเชพเชเช เช เชธเซเชฎเซเชณ เชเซเชก เชฒเชเชตเชพเชจเซเช เชถเชเซเชฏ เชฌเชจเชพเชตเซเชฏเซเช เชเชพเชฃเซ เชเซ เชคเซ เชธเชฐเชณ เช เชจเซ เชธเชฟเชเชเซเชฐเชจเชธ เชนเซเชฏ, เชเชจเชพเชฅเซ เชฅเซเชฐเซเชกเซเชจเซ เชเชเชคเชฐเชฟเช เชเชพเชฎเชเซเชฐเซเชจเซ เชเชเซ เชธเชฎเช เชงเชฐเชพเชตเชคเชพ เชฒเซเชเซ เชฎเชพเชเซ เชชเชฃ เชคเซ เชถเชเซเชฏ เชฌเชจเซเชฏเซเช เชเซ เชคเซเช เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชคเซ เชเชชเซเชฒเชฟเชเซเชถเชจเซ เชฒเชเซ เชถเชเซ, เชฒเชพเชเชฌเซ เชเชพเชฎเชเซเชฐเซ เชเชฐเชคเซ เชตเชเชคเซ เชธเซเชฅเชฟเชฐ เชฅเชคเซ เชจ เชนเซเชฏ เชคเซเชตเซ เชเชชเซเชฒเชฟเชเซเชถเชจเซ. async/await เชจเซ เชเชชเชฏเซเช เช เชเช เช เชฅเชตเชพ เชคเซ เชเชฃเชพ เชฒเซเชเซ เชฎเชพเชเซเชจเซ เชตเชฟเชทเชฏ เชเซ, เชชเชฐเชเชคเซ เชนเซเช เชฅเซเชกเชพ เชตเชพเชเซเชฏเซเชฎเชพเช เชคเซเชจเซ เชธเชพเชฐเชพเชเชถ เชฎเซเชณเชตเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชถ:
- async เช เชเชพเชฐเซเชฏ เช เชฅเชตเชพ เชฐเชฆเชฌเชพเชคเชฒ เชชเชฐเชค เชเชฐเชคเซ เชชเชฆเซเชงเชคเชฟเชจเซเช เชฎเซเชกเชฟเชซเชพเชฏเชฐ เชเซ
- เช เชจเซ await เช เชจเซเชจ-เชฌเซเชฒเซเชเซเชเช เชเชพเชธเซเช เชตเซเชเชเซเชเช เชเชชเชฐเซเชเชฐ เชเซ.
เชซเชฐเซ เชเชเชตเชพเชฐ: เชชเซเชฐเชคเซเชเซเชทเชพ เชเชชเชฐเซเชเชฐ, เชธเชพเชฎเชพเชจเซเชฏ เชเชฟเชธเซเชธเชพเชฎเชพเช (เชคเซเชฏเชพเช เช เชชเชตเชพเชฆเซ เชเซ), เช เชฎเชฒเชจเชพ เชตเชฐเซเชคเชฎเชพเชจ เชฅเซเชฐเซเชกเชจเซ เชตเชงเซ เชฌเชนเชพเชฐ เชชเชพเชกเชถเซ, เช เชจเซ เชเซเชฏเชพเชฐเซ เชเชพเชฐเซเชฏ เชคเซเชจเชพ เช เชฎเชฒเชจเซ เชชเซเชฐเซเชฃ เชเชฐเชถเซ, เช เชจเซ เชฅเซเชฐเซเชก (เชนเชเซเชเชคเชฎเชพเช, เชธเชเชฆเชฐเซเชญ เชเชนเซเชตเซเช เชตเชงเซ เชฏเซเชเซเชฏ เชฐเชนเซเชถเซ. , เชชเชฐเชเชคเซ เชคเซเชจเชพ เชชเชฐ เชชเชเซเชฅเซ เชตเชงเซ) เชชเชฆเซเชงเชคเชฟเชจเซ เชเชเชณ เชเชฒเชพเชตเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเชถเซ. .NET เชจเซ เช เชเชฆเชฐ, เช เชฎเชฟเชเซเชจเชฟเชเชฎ เชฏเซเชฒเซเชก เชฐเชฟเชเชฐเซเชจเชจเซ เชเซเชฎ เช เชฒเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซเชฏเชพเชฐเซ เชฒเซเชเชฟเชค เชชเชฆเซเชงเชคเชฟ เชธเชเชชเซเชฐเซเชฃ เชตเชฐเซเชเชฎเชพเช เชซเซเชฐเชตเชพเชฏ เชเซ, เชเซ เชเช เชฐเชพเชเซเชฏ เชฎเชถเซเชจ เชเซ เช เชจเซ เช เชฐเชพเชเซเชฏเซเชจเชพ เชเชงเชพเชฐเซ เช เชฒเช เชเซเชเชกเชพเชเชฎเชพเช เช เชฎเชฒ เชเชฐเซ เชถเชเชพเชฏ เชเซ. เชฐเชธ เชงเชฐเชพเชตเชคเซ เชเซเชเชชเชฃ เชตเซเชฏเชเซเชคเชฟ asynั/await เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชเชชเชฃ เชธเชฐเชณ เชเซเชก เชฒเชเซ เชถเชเซ เชเซ, เชเชฎเซเชชเชพเชเชฒเชฐ เชเชจเชฐเซเชเซเชก เชเซเชก เชธเชเซเชทเชฎ เชธเชพเชฅเซ JetBrains dotPeek เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชธเซเชฎเซเชฌเชฒเซเชจเซ เชเชฎเซเชชเชพเชเชฒ เช เชจเซ เชเซเช เชถเชเซ เชเซ.
เชเชพเชฒเซ เชเชพเชธเซเชเชจเซ เชฒเซเชจเซเช เชเชฐเชตเชพ เช เชจเซ เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชตเชฟเชเชฒเซเชชเซ เชเซเชเช. เชจเซเชเซเชจเชพ เชเซเชก เชเชฆเชพเชนเชฐเชฃเชฎเชพเช, เช เชฎเซ เชเช เชจเชตเซเช เชเชพเชฐเซเชฏ เชฌเชจเชพเชตเซเช เชเซเช เชเซ เชเชเชเชชเชฃ เชเชชเชฏเซเชเซ เชจเชฅเซ (เชฅเซเชฐเซเชก.เชธเซเชฒเซเชช(10000)), เชชเชฐเชเชคเซ เชตเชพเชธเซเชคเชตเชฟเช เชเซเชตเชจเชฎเชพเช เช เช เชฎเซเช เชเชเชฟเชฒ CPU-เชธเชเชจ เชเชพเชฐเซเชฏ เชนเซเชตเซเช เชเซเชเช.
using TCO = System.Threading.Tasks.TaskCreationOptions;
public static async void VoidAsyncMethod() {
var cancellationSource = new CancellationTokenSource();
await Task.Factory.StartNew(
// Code of action will be executed on other context
() => Thread.Sleep(10000),
cancellationSource.Token,
TCO.LongRunning | TCO.AttachedToParent | TCO.PreferFairness,
scheduler
);
// Code after await will be executed on captured context
}
เชเช เชเชพเชฐเซเชฏ เชธเชเชเซเชฏเชพเชฌเชเชง เชตเชฟเชเชฒเซเชชเซ เชธเชพเชฅเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
- เชฒเซเชเชเชฐเชจเชฟเชเช เช เชเช เชธเชเชเซเชค เชเซ เชเซ เชเชพเชฐเซเชฏ เชเชกเชชเชฅเซ เชชเซเชฐเซเชฃ เชฅเชถเซ เชจเชนเซเช, เชเซเชจเซ เช เชฐเซเชฅ เชเซ เชเซ เชชเซเชฒเชฎเชพเชเชฅเซ เชฅเซเชฐเซเชก เชจ เชฒเซเชตเชพเชจเซเช เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชตเซเช เชฏเซเชเซเชฏ เชเซ, เชชเชฐเชเชคเซ เช เชเชพเชฐเซเชฏ เชฎเชพเชเซ เชเช เช เชฒเช เชฌเชจเชพเชตเชตเซเช เชเซเชฅเซ เชเชฐเซเชจเซ เช เชจเซเชฏเชจเซ เชจเซเชเชธเชพเชจ เชจ เชฅเชพเชฏ.
- AttachedToParent - เชเชพเชฐเซเชฏเซเชจเซ เชชเชฆเชพเชจเซเชเซเชฐเชฎเชฎเชพเช เชเซเช เชตเซ เชถเชเชพเชฏ เชเซ. เชเซ เช เชตเชฟเชเชฒเซเชชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเซเชฏ, เชคเซ เชเชพเชฐเซเชฏ เชเชตเซ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช เชนเซเช เชถเชเซ เชเซ เชเซเชฏเชพเช เชคเซเชฃเซ เชชเซเชคเซ เชชเซเชฐเซเชฃ เชเชฐเซเชฏเซเช เชเซ เช เชจเซ เชคเซเชจเชพ เชฌเชพเชณเชเซเชจเชพ เช เชฎเชฒเชจเซ เชฐเชพเชน เชเซเช เชฐเชนเซเชฏเซเช เชเซ.
- PreferFairness - เชเชจเซ เช เชฐเซเชฅ เช เชเซ เชเซ เช เชฎเชฒ เชฎเชพเชเซ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซเชฒ เชเชพเชธเซเชเชจเซ เชชเชพเชเชณเชฅเซ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซ เชคเซ เชชเชนเซเชฒเชพเช เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชตเซเช เชตเชงเซ เชธเชพเชฐเซเช เชฐเชนเซเชถเซ. เชชเชฐเชเชคเซ เช เชฎเชพเชคเซเชฐ เชเช เชญเชฒเชพเชฎเชฃ เชเซ เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซเชจเซ เชเชพเชคเชฐเซ เชจเชฅเซ.
เชชเชฆเซเชงเชคเชฟเชฎเชพเช เชชเชธเชพเชฐ เชฅเชฏเซเชฒ เชฌเซเชเซเช เชชเชฐเชฟเชฎเชพเชฃ เชเซ CancellationToken. เชเชชเชฐเซเชถเชจ เชถเชฐเซ เชฅเชฏเชพ เชชเชเซ เชคเซเชจเซ เชฐเชฆ เชเชฐเชตเชพเชจเซเช เชฏเซเชเซเชฏ เชฐเซเชคเซ เชนเซเชจเซเชกเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ, เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒ เชเซเชก เชเซเชจเซเชธเชฒเซเชถเชจ เชเซเชเชจ เชธเซเชเซเช เชฎเชพเชเซ เชเซเชเชฅเซ เชญเชฐเซเชฒเซ เชนเซเชตเซ เชเซเชเช. เชเซ เชคเซเชฏเชพเช เชเซเช เชเซเช เชจ เชนเซเชฏ, เชคเซ CancellationTokenSource เชเชฌเซเชเซเชเซเช เชชเชฐ เชเซเชฒ เชเชฐเซเชฒ เชฐเชฆ เชเชฐเชตเชพเชจเซ เชชเชฆเซเชงเชคเชฟ, เชเชพเชฐเซเชฏ เชถเชฐเซ เชฅเชพเชฏ เชคเซ เชชเชนเซเชฒเชพเช เช เชคเซเชจเชพ เช เชฎเชฒเชจเซ เชฐเซเชเชตเชพ เชฎเชพเชเซ เชธเชเซเชทเชฎ เชนเชถเซ.
เชเซเชฒเซเชฒเซเช เชชเชฐเชฟเชฎเชพเชฃ เช TaskScheduler เชชเซเชฐเชเชพเชฐเชจเซเช เชถเซเชกเซเชฏเซเชฒเชฐ เชเชฌเซเชเซเชเซเช เชเซ. เช เชตเชฐเซเช เช เชจเซ เชคเซเชจเชพ เชตเชเชถเชเซ เชธเชฎเชเซเชฐ เชฅเซเชฐเซเชกเซเชฎเชพเช เชเชพเชฐเซเชฏเซเชจเซ เชตเชฟเชคเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชตเซเชฏเซเชนเชฐเชเชจเชพเชเชจเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชฐเชเชพเชฏเซเชฒ เชเซ; เชฎเซเชณเชญเซเชค เชฐเซเชคเซ, เชเชพเชฐเซเชฏ เชชเซเชฒเชฎเชพเชเชฅเซ เชฐเซเชจเซเชกเชฎ เชฅเซเชฐเซเชก เชชเชฐ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชชเซเชฐเชคเซเชเซเชทเชพ เชเชชเชฐเซเชเชฐ เชฌเชจเชพเชตเซเชฒ เชเชพเชฐเซเชฏ เชชเชฐ เชฒเชพเชเซ เชฅเชพเชฏ เชเซ, เชเซเชจเซ เช เชฐเซเชฅ เชเซ เชเซ เชคเซเชจเชพ เชชเชเซ เชฒเชเชพเชฏเซเชฒ เชเซเชก, เชเซ เชคเซเชฏเชพเช เชเช เชนเซเชฏ, เชคเซ เชคเซ เช เชธเชเชฆเชฐเซเชญเชฎเชพเช เช เชฎเชฒเชฎเชพเช เชเชตเชถเซ (เชเชฃเซ เชตเชเชค เชเชจเซ เช เชฐเซเชฅ เช เช เชฅเซเชฐเซเชก เชชเชฐ เชฅเชพเชฏ เชเซ) เชเซ เชชเซเชฐเชคเซเชเซเชทเชพ เชเชฐเชคเชพ เชชเชนเซเชฒเชพ เชเซเชก เชนเชคเซ.
เชชเชฆเซเชงเชคเชฟ async void เชคเชฐเซเชเซ เชเชฟเชนเซเชจเชฟเชค เชฅเชฏเซเชฒ เชเซ, เชเซเชจเซ เช เชฐเซเชฅ เชเซ เชเซ เชคเซ เชฐเชพเชน เชเชชเชฐเซเชเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ, เชชเชฐเชเชคเซ เชเซเชฒเชฟเชเช เชเซเชก เช เชฎเชฒ เชฎเชพเชเซ เชฐเชพเชน เชเซเช เชถเชเชถเซ เชจเชนเซเช. เชเซ เชเชตเซ เชธเซเชตเชฟเชงเชพ เชเชฐเซเชฐเซ เชนเซเชฏ, เชคเซ เชชเชฆเซเชงเชคเชฟเช เชเชพเชฐเซเชฏ เชชเชฐเชค เชเชฐเชตเซเช เชเชตเชถเซเชฏเช เชเซ. async void เชคเชฐเซเชเซ เชเชฟเชนเซเชจเชฟเชค เชเชฐเซเชฒเซ เชชเชฆเซเชงเชคเชฟเช เชเชเชฆเชฎ เชธเชพเชฎเชพเชจเซเชฏ เชเซ: เชเช เชจเชฟเชฏเชฎ เชคเชฐเซเชเซ, เช เชเชตเซเชจเซเช เชนเซเชจเซเชกเชฒเชฐเซเชธ เช เชฅเชตเชพ เช เชจเซเชฏ เชชเชฆเซเชงเชคเชฟเช เชเซ เชเซ เชเช เชชเชฐ เชเชพเชฎ เชเชฐเซ เชเซ เช เชจเซ เชธเชฟเชฆเซเชงเชพเชเชคเชจเซ เชญเซเชฒเซ เชเชพเชฏ เชเซ. เชเซ เชคเชฎเชพเชฐเซ เชฎเชพเชคเซเชฐ เชเชเซเชเซเชเซเชฏเซเชถเชจเชจเชพ เช เชเชค เชธเซเชงเซ เชฐเชพเชน เชเซเชตเชพเชจเซ เชคเช เชเชชเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ, เชชเชฐเชเชคเซ เชชเชฐเชฟเชฃเชพเชฎ เชชเชฃ เชชเชฐเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชคเซ เชคเชฎเชพเชฐเซ เชเชพเชฐเซเชฏเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
StartNew เชฎเซเชฅเชก เชชเชพเชเซ เชเชชเซเชฒเซ เชเชพเชธเซเช เชชเชฐ, เชคเซเชฎเช เช เชจเซเชฏ เชเซเชเชชเชฃ เชชเชฐ, เชคเชฎเซ เชเซเชเชพ เชชเซเชฐเชพเชฎเซเชเชฐ เชธเชพเชฅเซ ConfigureAwait เชฎเซเชฅเชกเชจเซ เชเซเชฒ เชเชฐเซ เชถเชเซ เชเซ, เชชเชเซ เชฐเชพเชน เชชเชเซ เชเชเซเชเซเชเซเชฏเซเชถเชจ เชเซเชชเซเชเชฐ เชเชฐเซเชฒเชพ เชธเชเชฆเชฐเซเชญ เชชเชฐ เชจเชนเซเช, เชชเชฐเชเชคเซ เชฎเชจเชธเซเชตเซ เชฐเซเชคเซ เชเชพเชฒเซ เชฐเชนเซเชถเซ. เชชเซเชฐเชคเซเชเซเชทเชพ เชชเชเซ เชเซเชก เชฎเชพเชเซ เช เชฎเชฒ เชธเชเชฆเชฐเซเชญ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชจ เชนเซเชฏ เชคเซเชฏเชพเชฐเซ เช เชนเชเชฎเซเชถเชพ เชเชฐเชตเซเช เชเซเชเช. เช เชเซเชก เชฒเชเชคเซ เชตเชเชคเซ MS เชคเชฐเชซเชฅเซ เชญเชฒเชพเชฎเชฃ เชชเชฃ เชเซ เชเซ เชฒเชพเชเชฌเซเชฐเซเชฐเซเชฎเชพเช เชชเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชเชพเชฒเซ เชคเชฎเซ เชเชพเชฐเซเชฏ เชชเซเชฐเซเชฃ เชฅเชตเชพเชจเซ เชฐเชพเชน เชเซเชตเซ เชฐเซเชคเซ เชเซเช เชถเชเซ เชคเซเชจเชพ เชชเชฐ เชฅเซเชกเซเช เชตเชงเซ เชงเซเชฏเชพเชจ เชเชชเซเช. เชจเซเชเซ เชเซเชกเชจเซเช เชเชฆเชพเชนเชฐเชฃ เชเซ, เชเซเชฏเชพเชฐเซ เช เชชเซเชเซเชทเชพ เชถเชฐเชคเซ เชฐเซเชคเซ เชธเชพเชฐเซ เชฐเซเชคเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ เชเซเชฏเชพเชฐเซ เชคเซ เชถเชฐเชคเซ เชฐเซเชคเซ เชจเชฌเชณเซ เชฐเซเชคเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชคเซเชจเชพ เชชเชฐ เชเชฟเชชเซเชชเชฃเซเช เชธเชพเชฅเซ.
public static async void AnotherMethod() {
int result = await AsyncMethod(); // good
result = AsyncMethod().Result; // bad
AsyncMethod().Wait(); // bad
IEnumerable<Task> tasks = new Task[] {
AsyncMethod(), OtherAsyncMethod()
};
await Task.WhenAll(tasks); // good
await Task.WhenAny(tasks); // good
Task.WaitAll(tasks.ToArray()); // bad
}
เชชเซเชฐเชฅเชฎ เชเชฆเชพเชนเชฐเชฃเชฎเชพเช, เช เชฎเซ เชเซเชฒเชฟเชเช เชฅเซเชฐเซเชกเชจเซ เช เชตเชฐเซเชงเชฟเชค เชเชฐเซเชฏเชพ เชตเชฟเชจเชพ เชเชพเชฐเซเชฏ เชชเซเชฐเซเชฃ เชฅเชตเชพเชจเซ เชฐเชพเชน เชเซเชเช เชเซเช; เช เชฎเซ เชชเชฐเชฟเชฃเชพเชฎเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชคเซเชฏเชพเชฐเซ เช เชเชฐเซเชถเซเช เชเซเชฏเชพเชฐเซ เชคเซ เชชเชนเซเชฒเซเชฅเซ เช เชนเชถเซ; เชคเซเชฏเชพเช เชธเซเชงเซ, เชเซเชฒเชฟเชเช เชฅเซเชฐเซเชก เชคเซเชจเชพ เชชเซเชคเชพเชจเชพ เชเชชเชเชฐเชฃเซ เชชเชฐ เชเซเชกเซ เชฆเซเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชฌเซเชเชพ เชตเชฟเชเชฒเซเชชเชฎเชพเช, เชชเชฆเซเชงเชคเชฟเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเชจเซ เชเชฃเชคเชฐเซ เชจ เชฅเชพเชฏ เชคเซเชฏเชพเช เชธเซเชงเซ เช เชฎเซ เชเซเชฒเชฟเชเช เชฅเซเชฐเซเชกเชจเซ เช เชตเชฐเซเชงเชฟเชค เชเชฐเซเช เชเซเช. เช เชฎเชพเชคเซเชฐ เชเชเชฒเชพ เชฎเชพเชเซ เชเชฐเชพเชฌ เชเซ เชเชพเชฐเชฃ เชเซ เช เชฎเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเชพ เชเชตเชพ เชฎเซเชฒเซเชฏเชตเชพเชจ เชธเชเชธเชพเชงเชจ เชชเชฐ, เชธเชฐเชณ เชเชณเชธ เชธเชพเชฅเซ, เชฅเซเชฐเซเชก เชชเชฐ เชเชฌเชเซ เชเชฐเซเชฏเซ เชเซ, เชชเชฃ เชเชพเชฐเชฃ เชเซ เชเซ เชเชชเชฃเซ เชเซเชฒ เชเชฐเซเช เชเซเช เชคเซ เชชเชฆเซเชงเชคเชฟเชจเชพ เชเซเชกเชฎเชพเช เชฐเชพเชน เชเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช เชจเซ เชธเชฟเชเชเซเชฐเชจเชพเชเชเซเชถเชจ เชธเชเชฆเชฐเซเชญเชจเซ เชเซเชฒเชฟเชเช เชฅเซเชฐเซเชก เชชเชฐ เชชเชพเชเชพ เชซเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชฐเชพเชน เชเซเช, เชชเชเซ เช เชฎเชจเซ เชกเซเชกเชฒเซเช เชฎเชณเชถเซ : เชเซเชฒเชฟเชเช เชฅเซเชฐเซเชก เช เชธเซเชฎเซเชณ เชชเชฆเซเชงเชคเชฟเชจเซ เชเชฃเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเชจเซ เชฐเชพเชน เชเซเช เชเซ, เช เชธเซเชฎเซเชณ เชชเชฆเซเชงเชคเชฟ เชเซเชฒเชฟเชเช เชฅเซเชฐเซเชกเชฎเชพเช เชคเซเชจเชพ เช เชฎเชฒเชจเซ เชเชพเชฒเซ เชฐเชพเชเชตเชพ เชฎเชพเชเซ เชจเชฟเชฐเชฐเซเชฅเช เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชเซ.
เช เช เชญเชฟเชเชฎเชจเซ เชฌเซเชเซ เชเซเชฐเชฒเชพเชญ เช เชเชเชฟเชฒ เชญเซเชฒ เชนเซเชจเซเชกเชฒเชฟเชเช เชเซ. เชนเชเซเชเชค เช เชเซ เชเซ async/await เชจเซ เชเชชเชฏเซเช เชเชฐเชคเซ เชตเชเชคเซ เช เชธเซเชฎเซเชณ เชเซเชกเชฎเชพเชเชจเซ เชญเซเชฒเซ เชนเซเชจเซเชกเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชฌ เช เชธเชฐเชณ เชเซ - เชคเซ เชเซเชก เชธเชฟเชเชเซเชฐเชจเชธ เชนเซเชฏ เชคเซ เชคเซ เช เชฐเซเชคเซ เชตเชฐเซเชคเซ เชเซ. เชเซ เชเชชเชฃเซ เชเชพเชฐเซเชฏ เชฎเชพเชเซ เชธเชฟเชเชเซเชฐเชจเชธ เชฐเชพเชน เชตเชณเชเชพเชก เชฎเซเชเซเชคเชฟ เชฒเชพเชเซ เชเชฐเซเช, เชคเซ เชฎเซเชณ เช เชชเชตเชพเชฆ เชเชเซเชฐเชฟเชเซเช เชเชเซเชธเซเชชเซเชถเชจเชฎเชพเช เชซเซเชฐเชตเชพเชฏ เชเซ, เชเชเชฒเซ เชเซ. เช เชชเชตเชพเชฆเชจเซ เชนเซเชจเซเชกเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ InnerException เชชเซเชฐเชเชพเชฐเชจเซเช เชชเชฐเซเชเซเชทเชฃ เชเชฐเชตเซเช เชชเชกเชถเซ เช เชจเซ C# เชตเชฟเชถเซเชตเชฎเชพเช เชตเชงเซ เชชเชฐเชฟเชเชฟเชค เชเซเช เชฌเซเชฒเซเชเซเชธเชจเซ เชธเชพเชเชเชณเชจเซ เชฌเชฆเชฒเซ, เชเช เชเซเช เชฌเซเชฒเซเชเชจเซ เช เชเชฆเชฐ เชเชพเชคเซ เชเซ เชธเชพเชเชเชณ เชฒเชเชตเซ เชชเชกเชถเซ เช เชฅเชตเชพ เชเซเชฏเชพเชฐเซ เชฌเชพเชเชงเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชฏเชพเชฐเซ เชเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชชเชกเชถเซ.
เชคเซเชฐเซเชเชพ เช เชจเซ เช เชเชคเชฟเชฎ เชเชฆเชพเชนเชฐเชฃเซเชจเซ เชชเชฃ เช เช เชเชพเชฐเชฃเชธเชฐ เชเชฐเชพเชฌ เชคเชฐเซเชเซ เชเชฟเชนเซเชจเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ เช เชจเซ เชคเซเชฎเชพเช เชฌเชงเซ เชธเชฎเชพเชจ เชธเชฎเชธเซเชฏเชพเช เชเซ.
เชเซเชฏเชพเชฐเซ เชเซเชเชชเชฃ เช เชจเซ เชเซเชฏเชพเชฐเซ เชฌเชงเซ เชชเชฆเซเชงเชคเชฟเช เชเชพเชฐเซเชฏเซเชจเชพ เชเซเชฅเชจเซ เชฐเชพเชน เชเซเชตเชพ เชฎเชพเชเซ เช เชคเซเชฏเชเชค เช เชจเซเชเซเชณ เชเซ; เชคเซเช เชเชพเชฐเซเชฏเซเชจเชพ เชเซเชฅเชจเซ เชเชเชฎเชพเช เชฒเชชเซเชเซ เชฆเซ เชเซ, เชเซ เชเชพเช เชคเซ เชเซเชฏเชพเชฐเซ เชเซเชฅเชฎเชพเชเชฅเซ เชเซเช เชเชพเชฐเซเชฏ เชชเซเชฐเชฅเชฎ เชเซเชฐเชฟเชเชฐ เชฅเชพเชฏ เชเซ เช เชฅเชตเชพ เชเซเชฏเชพเชฐเซ เชคเซ เชฌเชงเชพเช เชคเซเชฎเชจเซ เช เชฎเชฒ เชชเซเชฐเซเชฃ เชเชฐเซ เชฒเซเชงเซ เชนเซเชฏ เชคเซเชฏเชพเชฐเซ เชซเชพเชฏเชฐ เชฅเชถเซ.
เชฅเซเชฐเซเชกเซ เช เชเชเชพเชตเซ เชฐเชนเซเชฏเชพ เชเซเช
เชตเชฟเชตเชฟเชง เชเชพเชฐเชฃเซเชธเชฐ, เชชเซเชฐเชตเชพเชน เชถเชฐเซ เชฅเชฏเชพ เชชเชเซ เชคเซเชจเซ เชฐเซเชเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเซ เชถเชเซ เชเซ. เช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฃเซ เชฌเชงเซ เชฐเซเชคเซ เชเซ. เชฅเซเชฐเซเชก เชตเชฐเซเชเชฎเชพเช เชฌเซ เชฏเซเชเซเชฏ เชจเชพเชฎเชตเชพเชณเซ เชชเชฆเซเชงเชคเชฟเช เชเซ: เชเซเชกเซ เชฆเซ ะธ เชเชจเซเชเชฐเชชเซเช. เชชเซเชฐเชฅเชฎ เชเช เชเซเชฌ เชเชชเชฏเซเช เชฎเชพเชเซ เชเชเซเชฐเชนเชฃเซเชฏ เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ เชเซเชเชชเชฃ เชฐเซเชจเซเชกเชฎ เชเซเชทเชฃเซ เชคเซเชจเซ เชเซเชฒ เชเชฐเซเชฏเชพ เชชเชเซ, เชเซเชเชชเชฃ เชธเซเชเชจเชพเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชเช เช เชชเชตเชพเชฆ เชซเซเชเชเชตเชพเชฎเชพเช เชเชตเชถเซ ThreadAbortedException. เชเซเชเชชเชฃ เชชเซเชฐเซเชฃเชพเชเช เชเชฒเชจเซ เชตเชงเชพเชฐเชคเซ เชตเชเชคเซ เชคเชฎเซ เชเชตเชพ เช เชชเชตเชพเชฆเชจเซ เช เชชเซเชเซเชทเชพ เชฐเชพเชเชคเชพ เชจเชฅเซ, เชเชฐเซเช เชจเซ? เช เชจเซ เช เชชเชฆเซเชงเชคเชฟเชจเซ เชเชชเชฏเซเช เชเชฐเชคเซ เชตเชเชคเซ, เช เชเช เชเซเชฌ เช เชตเชพเชธเซเชคเชตเชฟเช เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เชเซ. เชเซ เชคเชฎเชพเชฐเซ CLR เชจเซ เชเซเชกเชจเชพ เชเซเชเซเชเชธ เชตเชฟเชญเชพเชเชฎเชพเช เชเชตเซ เช เชชเชตเชพเชฆ เชเชจเชฐเซเช เชเชฐเชตเชพเชฅเซ เชฐเซเชเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ, เชคเซ เชคเชฎเซ เชคเซเชจเซ เชเซเชฒเชฎเชพเช เชฒเชชเซเชเซ เชถเชเซ เชเซ. เชฅเซเชฐเซเชก. BeginCriticalRegion, Thread.EndCriticalRegion. เชเชเชฐเซ เชฌเซเชฒเซเชเชฎเชพเช เชฒเชเชพเชฏเซเชฒ เชเซเชเชชเชฃ เชเซเชก เชเชตเชพ เชเซเชฒเซเชธเชฎเชพเช เชเชตเชฐเชฟเชค เชนเซเชฏ เชเซ. เช เชเชพเชฐเชฃเซเชธเชฐ, เชซเซเชฐเซเชฎเชตเชฐเซเช เชเซเชกเชจเซ เชเชเชกเชพเชเชฎเชพเช เชคเชฎเซ เชเชพเชฒเซ เชชเซเชฐเชฏเชพเชธ เชธเชพเชฅเซ เชฌเซเชฒเซเชเซเชธ เชถเซเชงเซ เชถเชเซ เชเซ, เชชเชฐเชเชคเซ เช เชเชคเซ เชเชพเชฒเซ เชจเชนเซเช. เชฎเชพเชเชเซเชฐเซเชธเซเชซเซเช เช เชชเชฆเซเชงเชคเชฟเชจเซ เชเชเชฒเซ เชจเชฟเชฐเซเชคเซเชธเชพเชนเชฟเชค เชเชฐเซ เชเซ เชเซ เชคเซเชเช เชคเซเชจเซ .net เชเซเชฐเชฎเชพเช เชธเชฎเชพเชตเซ เชจเชฅเซ.
เชตเชฟเชเซเชทเซเชช เชชเชฆเซเชงเชคเชฟ เชตเชงเซ เช เชจเซเชฎเชพเชจเชฟเชค เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชเซ. เชคเซ เช เชชเชตเชพเชฆ เชธเชพเชฅเซ เชฅเซเชฐเซเชกเชจเซ เชตเชฟเชเซเชทเซเชชเชฟเชค เชเชฐเซ เชถเชเซ เชเซ ThreadInterruptedException เชฎเชพเชคเซเชฐ เชคเซ เชเซเชทเชฃเซ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชเซเชฏเชพเชฐเซ เชฅเซเชฐเซเชก เชฐเชพเชน เชเซเชตเชพเชจเซ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช เชนเซเชฏ. เชตเซเชเชเชนเซเชจเซเชกเชฒ, เชฒเซเช เช เชฅเชตเชพ เชฅเซเชฐเซเชก.เชธเซเชฒเซเชชเชจเซ เชเซเชฒ เชเชฐเซเชฏเชพ เชชเชเซ เชฐเชพเชน เชเซเชคเซ เชตเชเชคเซ เชฒเชเชเชคเซ เชตเชเชคเซ เชคเซ เช เชธเซเชฅเชฟเชคเชฟเชฎเชพเช เชชเซเชฐเชตเซเชถ เชเชฐเซ เชเซ.
เชเชชเชฐ เชตเชฐเซเชฃเชตเซเชฒ เชฌเชเชจเซ เชตเชฟเชเชฒเซเชชเซ เชเชฐเชพเชฌ เชเซ เชเชพเชฐเชฃ เชเซ เชคเซ เช เชฃเชงเชพเชฐเซ เชเซ. เชเชเซเชฒ เช เชธเซเชเซเชฐเชเซเชเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเซ เชฐเชฆเซเชฆเซเชเชฐเชฃ เชเซเชเชจ เช เชจเซ เชตเชฐเซเช เชเซเชจเซเชธเชฒเซเชถเชจ เชเซเชเชจเชธเซเชฐเซเชธ. เชฎเซเชฆเซเชฆเซ เช เชเซ: เชเซเชจเซเชธเชฒเซเชถเชจ เชเซเชเชจเชธเซเชฐเซเชธ เชเซเชฒเชพเชธเชจเซ เชเช เชฆเชพเชเชฒเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชเซ เช เชจเซ เชเซ เชคเซเชจเซ เชฎเชพเชฒเชฟเชเซ เชงเชฐเชพเชตเซ เชเซ เชคเซ เช เชชเชฆเซเชงเชคเชฟเชจเซ เชเซเชฒ เชเชฐเซเชจเซ เชเชชเชฐเซเชถเชจเชจเซ เชฐเซเชเซ เชถเชเซ เชเซ. เชฐเชฆ เชเชฐเซ. เชฎเชพเชคเซเชฐ เชเซเชจเซเชธเชฒเซเชถเชจ เชเซเชเชจ เช เชเชชเชฐเซเชถเชจเชฎเชพเช เช เชชเชธเชพเชฐ เชฅเชพเชฏ เชเซ. CancellationToken เชฎเชพเชฒเชฟเชเซ เชชเซเชคเซ เชเชชเชฐเซเชถเชจ เชฐเชฆ เชเชฐเซ เชถเชเชคเชพ เชจเชฅเซ, เชชเชฐเชเชคเซ เชเชชเชฐเซเชถเชจ เชฐเชฆ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ เชเซ เชเซเชฎ เชคเซ เชฎเชพเชคเซเชฐ เชคเชชเชพเชธเซ เชถเชเซ เชเซ. เช เชฎเชพเชเซ เชฌเซเชฒเชฟเชฏเชจ เชชเซเชฐเซเชชเชฐเซเชเซ เชเซ เชฐเชฆ เชเชฐเชตเชพเชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเซ เชเซ เช เชจเซ เชชเชฆเซเชงเชคเชฟ ThrowIfCancelRequested. เชฌเชพเชฆเชฎเชพเช เช เชชเชตเชพเชฆ เชซเซเชเชเชถเซ TaskCancelledException เชเซ เชเซเชจเซเชธเชฒเซเชถเชจ เชเซเชเชจ เชฆเชพเชเชฒเชพเชจเซ เชชเซเชชเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชคเซ เชเซเชจเซเชธเชฒ เชชเชฆเซเชงเชคเชฟเชจเซ เชฌเซเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ. เช เชจเซ เช เชคเซ เชชเชฆเซเชงเชคเชฟ เชเซ เชเซเชจเซ เชนเซเช เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชญเชฒเชพเชฎเชฃ เชเชฐเซเช เชเซเช. เช เชชเชตเชพเชฆ เชเชพเชฎเชเซเชฐเซ เชเชฏเชพ เชฌเชฟเชเชฆเซเช เชฌเชเชง เชเชฐเซ เชถเชเชพเชฏ เชคเซเชจเชพ เชชเชฐ เชธเชเชชเซเชฐเซเชฃ เชจเชฟเชฏเชเชคเซเชฐเชฃ เชฎเซเชณเชตเซเชจเซ เช เชเชพเชเชจเชพ เชตเชฟเชเชฒเซเชชเซ เชเชฐเชคเชพเช เช เชธเซเชงเชพเชฐเซ เชเซ.
เชฅเซเชฐเซเชกเชจเซ เชฐเซเชเชตเชพ เชฎเชพเชเซเชจเซ เชธเซเชฅเซ เชเชพเชคเชเซ เชตเชฟเชเชฒเซเชช Win32 API เชเชฐเซเชฎเชฟเชจเซเช เชฅเซเชฐเซเชก เชซเชเชเซเชถเชจเชจเซ เชเซเชฒ เชเชฐเชตเชพเชจเซ เชเซ. เช เชซเชเชเซเชถเชจเชจเซ เชเซเชฒ เชเชฐเซเชฏเชพ เชชเชเซ CLR เชจเซเช เชตเชฐเซเชคเชจ เช เชฃเชงเชพเชฐเซ เชนเซเช เชถเชเซ เชเซ. MSDN เชชเชฐ เช เชซเชเชเซเชถเชจ เชตเชฟเชถเซ เชจเซเชเซ เชฒเชเซเชฒเซเช เชเซ: "TerminateThread เช เชเช เชเชคเชฐเชจเชพเช เชเชพเชฐเซเชฏ เชเซ เชเซเชจเซ เชเชชเชฏเซเช เชซเชเซเชค เช เชคเซเชฏเชเชค เชเชคเซเชฏเชเชคเชฟเช เชเซเชธเซเชฎเชพเช เชฅเชตเซ เชเซเชเช. "
FromAsync เชชเชฆเซเชงเชคเชฟเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฒเซเชเชธเซ API เชจเซ เชเชพเชฐเซเชฏ เชเชงเชพเชฐเชฟเชค เชฎเชพเช เชฐเซเชชเชพเชเชคเชฐเชฟเชค เชเชฐเชตเซเช
เชเซ เชคเชฎเซ เชเชตเชพ เชชเซเชฐเซเชเซเชเซเช เชชเชฐ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชชเซเชฐเชคเชพ เชญเชพเชเซเชฏเชถเชพเชณเซ เชเซ เชเซ เชเซ เชเชพเชธเซเชเซเชธ เชฐเชเซ เชฅเชฏเชพ เชชเชเซ เชถเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช เช เชจเซ เชฎเซเชเชพเชญเชพเชเชจเชพ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเช เชฎเชพเชเซ เชถเชพเชเชค เชญเชฏเชพเชจเชเชคเชพ เชชเซเชฆเชพ เชเชฐเชตเชพเชจเซเช เชฌเชเชง เชเชฐเซ เชฆเซเชงเซเช เชนเชคเซเช, เชคเซ เชคเชฎเชพเชฐเซ เชเชฃเชพ เชฌเชงเชพ เชเซเชจเชพ API, เชฌเชเชจเซ เชคเซเชคเซเชฏ-เชชเชเซเชท เช เชจเซ เชคเชฎเชพเชฐเซ เชเซเชฎ เชธเชพเชฅเซ เชตเซเชฏเชตเชนเชพเชฐ เชเชฐเชตเซ เชชเชกเชถเซ เชจเชนเซเช. เชญเซเชคเชเชพเชณเชฎเชพเช เชคเซเชฐเชพเชธ เชเชชเซเชฏเซ เชเซ. เชธเชฆเชญเชพเชเซเชฏเซ, .NET เชซเซเชฐเซเชฎเชตเชฐเซเช เชเซเชฎเซ เช เชฎเชพเชฐเซ เชธเชเชญเชพเชณ เชฒเซเชงเซ, เชเซ เชเซ เชเชฆเชพเช เชงเซเชฏเซเชฏ เชเชชเชฃเซ เชธเชเชญเชพเชณ เชฐเชพเชเชตเชพเชจเซ เชนเชคเซ. เชคเซ เชเชฎเซ เชคเซเชเชฒเซเช เชนเซเชฏ, .NET เชชเชพเชธเซ เชเซเชจเชพ เช เชธเซเชฎเซเชณ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เช เชญเชฟเชเชฎเซเชฎเชพเช เชฒเชเซเชฒเชพ เชเซเชกเชจเซ เชชเซเชกเชพเชฐเชนเชฟเชค เชฐเซเชคเซ เชจเชตเชพเชฎเชพเช เชเชจเซเชตเชฐเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฃเชพ เชฌเชงเชพ เชเซเชฒเซเชธ เชเซ. เชคเซเชฎเชพเชเชฅเซ เชเช เชเชพเชธเซเชเชซเซ เชเซเชเชฐเซเชจเซ FromAsync เชชเชฆเซเชงเชคเชฟ เชเซ. เชจเซเชเซเชจเชพ เชเซเชก เชเชฆเชพเชนเชฐเชฃเชฎเชพเช, เช เชชเชฆเซเชงเชคเชฟเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชนเซเช WebRequest เชตเชฐเซเชเชจเซ เชเซเชจเซ async เชชเชฆเซเชงเชคเชฟเชเชจเซ เชเชพเชฐเซเชฏเชฎเชพเช เชฒเชชเซเชเซเชถ.
object state = null;
WebRequest wr = WebRequest.CreateHttp("http://github.com");
await Task.Factory.FromAsync(
wr.BeginGetResponse,
we.EndGetResponse
);
เช เชฎเชพเชคเซเชฐ เชเช เชเชฆเชพเชนเชฐเชฃ เชเซ เช เชจเซ เชคเชฎเชพเชฐเซ เช เชฌเชฟเชฒเซเช-เชเชจ เชชเซเชฐเชเชพเชฐเซ เชธเชพเชฅเซ เชเชฐเชตเซเช เชชเชกเซ เชคเซเชตเซ เชถเชเซเชฏเชคเชพ เชจเชฅเซ, เชชเชฐเชเชคเซ เชเซเชเชชเชฃ เชเซเชจเซ เชชเซเชฐเซเชเซเชเซเช เชซเชเซเชค BeginDoSomething เชชเชฆเซเชงเชคเชฟเชเชฅเซ เชญเชฐเชชเซเชฐ เชนเซเชฏ เชเซ เชเซ เชคเซเชจเซ เชชเซเชฐเชพเชชเซเชค เชเชฐเชคเซ IAsyncResult เช เชจเซ EndDoSomething เชชเชฆเซเชงเชคเชฟเช เชชเชฐเชค เชเชฐเซ เชเซ.
TaskCompletionSource เชตเชฐเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฒเซเชเชธเซ API เชจเซ Task Based เชฎเชพเช เชเชจเซเชตเชฐเซเช เชเชฐเซ
เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชตเชพเชจเซเช เชฌเซเชเซเช เชฎเชนเชคเซเชตเชจเซเช เชธเชพเชงเชจ เช เชตเชฐเซเช เชเซ TaskCompletionSource. เชเชพเชฐเซเชฏเซ, เชนเซเชคเซ เช เชจเซ เชเชพเชฎเชเซเชฐเซเชจเชพ เชธเชฟเชฆเซเชงเชพเชเชคเชจเชพ เชธเชเชฆเชฐเซเชญเชฎเชพเช, เชคเซ เชฅเซเชฐเซเชกเชชเซเชฒ เชตเชฐเซเชเชจเซ RegisterWaitForSingleObject เชชเชฆเซเชงเชคเชฟเชจเซ เชเชเชเช เช เชเชถเซ เชฏเชพเชฆ เช เชชเชพเชตเซ เชเซ, เชเซเชจเชพ เชตเชฟเชถเซ เชฎเซเช เชเชชเชฐ เชฒเชเซเชฏเซเช เชเซ. เช เชตเชฐเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ, เชคเชฎเซ เชเชพเชฐเซเชฏเชฎเชพเช เชเซเชจเชพ เช เชธเซเชฎเซเชณ API เชจเซ เชธเชฐเชณเชคเชพเชฅเซ เช เชจเซ เชธเชนเซเชฒเชพเชเชฅเซ เชฒเชชเซเชเซ เชถเชเซ เชเซ.
เชคเชฎเซ เชเชนเซเชถเซ เชเซ เชฎเซเช เชชเชนเซเชฒเซเชฅเซ เช เช เชนเซเชคเซเช เชฎเชพเชเซ เชฌเชจเชพเชตเชพเชฏเซเชฒ TaskFactory เชตเชฐเซเชเชจเซ FromAsync เชชเชฆเซเชงเชคเชฟ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซ เชเซ. เช เชนเซเช เชเชชเชฃเซ .net เชฎเชพเช เช เชธเซเชฎเซเชณ เชฎเซเชกเชฒเซเชธเชจเชพ เชตเชฟเชเชพเชธเชจเชพ เชธเชฎเชเซเชฐ เชเชคเชฟเชนเชพเชธเชจเซ เชฏเชพเชฆ เชฐเชพเชเชตเชพเชจเซ เชฐเชนเซเชถเซ เชเซ เชฎเชพเชเชเซเชฐเซเชธเซเชซเซเชเซ เชเซเชฒเซเชฒเชพ 15 เชตเชฐเซเชทเซเชฎเชพเช เชเชซเชฐ เชเชฐเซเชฏเซ เชเซ: เชเชพเชธเซเช-เชฌเซเชเซเชก เช เชธเชฟเชเชเซเชฐเซเชจเชธ เชชเซเชเชฐเซเชจ (TAP) เชชเชนเซเชฒเชพเช, เชคเซเชฏเชพเช เช เชธเชฟเชเชเซเชฐเซเชจเชธ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชชเซเชเชฐเซเชจ (APP) เชนเชคเซ, เชเซ เชชเชฆเซเชงเชคเชฟเช เชตเชฟเชถเซ เชนเชคเซเช เชถเชฐเซเชเชคเชถเซเช เชเชเชเช เชชเชฐเชค IAsyncResult เช เชจเซ เชชเชฆเซเชงเชคเชฟเช เช เชเชคDoSomething เชเซ เชเซ เชคเซเชจเซ เชธเซเชตเซเชเชพเชฐเซ เชเซ เช เชจเซ เช เชตเชฐเซเชทเซเชจเชพ เชตเชพเชฐเชธเชพ เชฎเชพเชเซ FromAsync เชชเชฆเซเชงเชคเชฟ เชเชเชฆเชฎ เชชเชฐเชซเซเชเซเช เชเซ, เชชเชฐเชเชคเซ เชธเชฎเชฏ เชเชคเชพเช, เชคเซเชจเซ เชเชตเซเชจเซเช เชเชงเชพเชฐเชฟเชค เช เชธเชฟเชเชเซเชฐเซเชจเชธ เชชเซเชเชฐเซเชจ (เชเชเชชเซ), เชเซ เชงเชพเชฐเซ เชเซ เชเซ เชเซเชฏเชพเชฐเซ เช เชธเซเชฎเซเชณ เชเชพเชฎเชเซเชฐเซ เชชเซเชฐเซเชฃ เชฅเชถเซ เชคเซเชฏเชพเชฐเซ เชเชเชจเชพ เชเชญเซ เชฅเชถเซ.
TaskCompletionSource เชเชตเซเชจเซเช เชฎเซเชกเชฒเชจเซ เชเชธเชชเชพเชธ เชฌเชจเซเชฒเชพ Tasks เช เชจเซ เชฒเซเชเชธเซ API เชจเซ เชฒเชชเซเชเชตเชพ เชฎเชพเชเซ เชฏเซเชเซเชฏ เชเซ. เชคเซเชจเชพ เชเชพเชฐเซเชฏเชจเซ เชธเชพเชฐ เชจเซเชเซ เชฎเซเชเชฌ เชเซ: เช เชตเชฐเซเชเชจเชพ เชเชฌเซเชเซเชเซเชเชฎเชพเช เชเชพเชธเซเช เชชเซเชฐเชเชพเชฐเชจเซ เชเชพเชนเซเชฐ เชฎเชฟเชฒเชเชค เชเซ, เชเซเชจเซ เชธเซเชฅเชฟเชคเชฟเชจเซ TaskCompletionSource เชตเชฐเซเชเชจเซ SetResult, SetException เชตเชเซเชฐเซ เชชเชฆเซเชงเชคเชฟเช เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ. เชธเซเชฅเชพเชจเซ เชชเชฐ เชเซเชฏเชพเช เชฐเชพเชน เชเชชเชฐเซเชเชฐ เช เชเชพเชฐเซเชฏ เชฎเชพเชเซ เชฒเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช, เชคเซ TaskCompletionSource เชชเชฐ เชฒเชพเชเซ เชเชฐเชพเชฏเซเชฒ เชชเชฆเซเชงเชคเชฟเชจเชพ เชเชงเชพเชฐเซ เช เชชเชตเชพเชฆ เชธเชพเชฅเซ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ เช เชฅเชตเชพ เชจเชฟเชทเซเชซเชณ เชเชถเซ. เชเซ เชคเซ เชนเชเซ เชชเชฃ เชธเซเชชเชทเซเช เชจเชฅเซ, เชคเซ เชเชพเชฒเซ เช เชเซเชก เชเชฆเชพเชนเชฐเชฃ เชเซเชเช, เชเซเชฏเชพเช เชเซเชเชฒเชพเช เชเซเชจเชพ EAP API เชจเซ TaskCompletionSource เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชพเชธเซเชเชฎเชพเช เชเชตเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ: เชเซเชฏเชพเชฐเซ เชเชตเซเชจเซเช เชซเชพเชฏเชฐ เชฅเชพเชฏ เชเซ, เชคเซเชฏเชพเชฐเซ เชเชพเชฐเซเชฏ เชชเซเชฐเซเชฃ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ, เช เชจเซ เชชเซเชฐเชคเซเชเซเชทเชพ เชเชชเชฐเซเชเชฐเชจเซ เชฒเชพเชเซ เชเชฐเชตเชพเชจเซ เชชเชฆเซเชงเชคเชฟ เช เชเชพเชฐเซเชฏ เชเชฌเซเชเซเชเซเช เชชเซเชฐเชพเชชเซเชค เชเชฐเซเชฏเชพ เชชเชเซ เชคเซเชจเซเช เช เชฎเชฒเซเชเชฐเชฃ เชซเชฐเซ เชถเชฐเซ เชเชฐเชถเซ เชชเชฐเชฟเชฃเชพเชฎ.
public static Task<Result> DoAsync(this SomeApiInstance someApiObj) {
var completionSource = new TaskCompletionSource<Result>();
someApiObj.Done +=
result => completionSource.SetResult(result);
someApiObj.Do();
result completionSource.Task;
}
เชเชพเชฐเซเชฏ เชชเซเชฐเซเชฃเชคเชพ เชธเซเชคเซเชฐเซเชค เชเชฟเชชเซเชธ เช เชจเซ เชฏเซเชเซเชคเชฟเช
TaskCompletionSource เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชจเชพ API เชจเซ เชตเซเชเชเชพเชณเชตเซเช เชเชเชฒเซเช เช เชจเชฅเซ. เช เชตเชฐเซเชเชจเซ เชเชชเชฏเซเช เชฅเซเชฐเซเชกเซ เชชเชฐ เชเชฌเชเซ เชจ เชเชฐเชคเชพ เชเชพเชฐเซเชฏเซ เชชเชฐ เชตเชฟเชตเชฟเชง API เชจเซ เชกเชฟเชเชพเชเชจ เชเชฐเชตเชพเชจเซ เชฐเชธเชชเซเชฐเชฆ เชธเชเชญเชพเชตเชจเชพ เชเซเชฒเซ เชเซ. เช เชจเซ เชธเซเชเซเชฐเซเชฎ, เชเซเชฎ เชเชชเชฃเซ เชฏเชพเชฆ เชฐเชพเชเซเช เชเซเช, เชเช เชเชฐเซเชเชพเชณ เชธเชเชธเชพเชงเชจ เชเซ เช เชจเซ เชคเซเชฎเชจเซ เชธเชเชเซเชฏเชพ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชเซ (เชฎเซเชเซเชฏเชคเซเชตเซ RAM เชจเซ เชฎเชพเชคเซเชฐเชพ เชฆเซเชตเชพเชฐเชพ). เช เชฎเชฐเซเชฏเชพเชฆเชพ เชตเชฟเชเชพเชธ เชฆเซเชตเชพเชฐเชพ เชธเชฐเชณเชคเชพเชฅเซ เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเชเชฟเชฒ เชตเซเชฏเชตเชธเชพเชฏ เชคเชฐเซเช เชธเชพเชฅเซ เชฒเซเชก เชเชฐเซเชฒ เชตเซเชฌ เชเชชเซเชฒเชฟเชเซเชถเชจ. เชฒเซเชเช-เชชเซเชฒเซเชเช เชเซเชตเซ เชฏเซเชเซเชคเชฟเชจเซ เช เชฎเชฒ เชเชฐเชคเซ เชตเชเชคเซ เชนเซเช เชเซ เชถเชเซเชฏเชคเชพเช เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซ เชฐเชนเซเชฏเซ เชเซเช เชคเซเชจเชพ เชชเชฐ เชเชพเชฒเซ เชตเชฟเชเชพเชฐ เชเชฐเซเช.
เชเซเชเชเชฎเชพเช, เชฏเซเชเซเชคเชฟเชจเซ เชธเชพเชฐ เช เชเซ: เชคเชฎเชพเชฐเซ เชคเซเชจเซ เชฌเชพเชเซเชฎเชพเช เชฌเชจเชคเซ เชเซเชเชฒเซเช เชเชเชจเชพเช เชตเชฟเชถเซ API เชชเชพเชธเซเชฅเซ เชฎเชพเชนเชฟเชคเซ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชเซเชฏเชพเชฐเซ API เชเซเชเชฒเชพเช เชเชพเชฐเชฃเซเชธเชฐ เชเชเชจเชพเชจเซ เชเชพเชฃ เชเชฐเซ เชถเชเชคเซเช เชจเชฅเซ, เชชเชฐเชเชคเซ เชซเชเซเชค เชฐเชพเชเซเชฏ เชชเชฐเชค เชเชฐเซ เชถเชเซ เชเซ. เชเชจเซเช เชเชฆเชพเชนเชฐเชฃ WebSocket เชจเชพ เชธเชฎเชฏ เชชเชนเซเชฒเชพ เช เชฅเชตเชพ เชเซเชฏเชพเชฐเซ เช เชเซเชเซเชจเซเชฒเซเชเซเชจเซ เชเชชเชฏเซเช เชเซเช เชเชพเชฐเชฃเซเชธเชฐ เช เชถเชเซเชฏ เชนเชคเซเช เชคเซเชฏเชพเชฐเซ HTTP เชจเซ เชเซเช เชชเชฐ เชฌเชจเซเชฒ เชคเชฎเชพเชฎ API เชเซ. เชเซเชฒเชพเชฏเชเช HTTP เชธเชฐเซเชตเชฐเชจเซ เชชเซเชเซ เชถเชเซ เชเซ. HTTP เชธเชฐเซเชตเชฐ เชชเซเชคเซ เชเซเชฒเชพเชฏเชเช เชธเชพเชฅเซ เชตเชพเชคเชเซเชค เชถเชฐเซ เชเชฐเซ เชถเชเชคเซเช เชจเชฅเซ. เชเชพเชเชฎเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชธเชฐเซเชตเชฐเชจเซเช เชฎเชคเชฆเชพเชจ เชเชฐเชตเซเช เช เชเช เชธเชฐเชณ เชเชชเชพเชฏ เชเซ, เชชเชฐเชเชคเซ เชเชจเชพเชฅเซ เชธเชฐเซเชตเชฐ เชชเชฐ เชตเชงเชพเชฐเชพเชจเซ เชญเชพเชฐ เชชเชกเซ เชเซ เช เชจเซ เชธเชฐเซเชฐเชพเชถ TimerInterval/2 เชชเชฐ เชตเชงเชพเชฐเชพเชจเซ เชตเชฟเชฒเชเชฌ เชฅเชพเชฏ เชเซ. เชเชจเซ เชเชธเชชเชพเชธ เชเชตเชพ เชฎเชพเชเซ, เชฒเซเชเช เชชเซเชฒเชฟเชเช เชจเชพเชฎเชจเซ เชฏเซเชเซเชคเชฟเชจเซ เชถเซเชง เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ, เชเซเชฎเชพเช เชชเซเชฐเชคเชฟเชญเชพเชตเชฎเชพเช เชตเชฟเชฒเชเชฌเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ. เชธเชฐเซเชตเชฐ เชเซเชฏเชพเช เชธเซเชงเซ เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟ เชธเชฎเชพเชชเซเชค เชจ เชฅเชพเชฏ เช เชฅเชตเชพ เชเชตเซเชจเซเช เชฅเชถเซ. เชเซ เชเซเช เชเชเชจเชพ เชฌเชจเซ เชเซ, เชคเซ เชคเซเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ; เชเซ เชจเชนเซเช, เชคเซ เชตเชฟเชจเชเชคเซ เชซเชฐเซเชฅเซ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
while(!eventOccures && !timeoutExceeded) {
CheckTimout();
CheckEvent();
Thread.Sleep(1);
}
เชชเชฐเชเชคเซ เชเชตเซเชจเซเชเชจเซ เชฐเชพเชน เชเซเช เชฐเชนเซเชฒเชพ เชเซเชฐเชพเชนเชเซเชจเซ เชธเชเชเซเชฏเชพ เชตเชงเชคเชพ เช เช เชชเซเชฐเชเชพเชฐเชจเซ เชเชชเชพเชฏ เชญเชฏเชเชเชฐ เชธเชพเชฌเชฟเชค เชฅเชถเซ, เชเชพเชฐเชฃ เชเซ... เชเชตเชพ เชฆเชฐเซเช เชเซเชฒเชพเชฏเชเช เชเชเชจเชพเชจเซ เชฐเชพเชน เชเซเชคเชพ เชธเชฎเชเซเชฐ เชฅเซเชฐเซเชก เชชเชฐ เชเชฌเชเซ เชเชฐเซ เชเซ. เชนเชพ, เช เชจเซ เชเซเชฏเชพเชฐเซ เชเชตเซเชจเซเช เชเซเชฐเชฟเชเชฐ เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ เช เชฎเชจเซ เชตเชงเชพเชฐเชพเชจเซ 1ms เชตเชฟเชฒเชเชฌ เชฎเชณเซ เชเซ, เชฎเซเชเชพเชญเชพเชเซ เช เชจเซเชเชงเชชเชพเชคเซเชฐ เชจเชฅเซ, เชชเชฐเชเชคเซ เชถเชพ เชฎเชพเชเซ เชธเซเชซเซเชเชตเซเชฐเชจเซ เชคเซ เชฌเชจเซ เชถเชเซ เชคเซเชจเชพ เชเชฐเชคเชพเช เชตเชงเซ เชเชฐเชพเชฌ เชฌเชจเชพเชตเซ เชเซ? เชเซ เชเชชเชฃเซ Thread.Sleep(1) เชจเซ เชฆเซเชฐ เชเชฐเซเช, เชคเซ เชจเชฟเชฐเชฐเซเชฅเช เชฐเซเชคเซ เชเชชเชฃเซ เชเช เชชเซเชฐเซเชธเซเชธเชฐ เชเซเชฐ 100% เชจเชฟเชทเซเชเซเชฐเชฟเชฏ เชฒเซเชก เชเชฐเซเชถเซเช, เชเช เชจเชเชพเชฎเซ เชเชเซเชฐเชฎเชพเช เชซเชฐเชคเชพ. TaskCompletionSource เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเชฎเซ เช เชเซเชกเชจเซ เชธเชฐเชณเชคเชพเชฅเซ เชฐเซเชฎเซเช เชเชฐเซ เชถเชเซ เชเซ เช เชจเซ เชเชชเชฐ เชฆเชฐเซเชถเชพเชตเซเชฒ เชคเชฎเชพเชฎ เชธเชฎเชธเซเชฏเชพเช เชนเชฒ เชเชฐเซ เชถเชเซ เชเซ:
class LongPollingApi {
private Dictionary<int, TaskCompletionSource<Msg>> tasks;
public async Task<Msg> AcceptMessageAsync(int userId, int duration) {
var cs = new TaskCompletionSource<Msg>();
tasks[userId] = cs;
await Task.WhenAny(Task.Delay(duration), cs.Task);
return cs.Task.IsCompleted ? cs.Task.Result : null;
}
public void SendMessage(int userId, Msg m) {
if (tasks.TryGetValue(userId, out var completionSource))
completionSource.SetResult(m);
}
}
เช เชเซเชก เชเชคเซเชชเชพเชฆเชจ เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชจเชฅเซ, เชชเชฐเชเชคเซ เชฎเชพเชคเซเชฐ เชเช เชกเซเชฎเซ เชเซ. เชตเชพเชธเซเชคเชตเชฟเช เชเซเชธเซเชฎเชพเช เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชเชเชพเชฎเชพเช เชเชเซเช, เชเซเชฏเชพเชฐเซ เชเซเชเชจเซ เช เชชเซเชเซเชทเชพ เชจ เชนเซเชฏ เชคเซเชตเชพ เชธเชฎเชฏเซ เชธเชเชฆเซเชถ เชเชตเซ เชคเซเชฏเชพเชฐเซ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชจเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพเชจเซ เชชเชฃ เชเชฐเซเชฐ เชเซ: เช เชเชฟเชธเซเชธเชพเชฎเชพเช, AsseptMessageAsync เชชเชฆเซเชงเชคเชฟเช เชชเชนเซเชฒเซเชฅเซ เช เชชเซเชฐเซเชฃ เชเชฐเซเชฒ เชเชพเชฐเซเชฏ เชชเชฐเชค เชเชฐเชตเซเช เชเซเชเช. เชเซ เช เชธเซเชฅเซ เชธเชพเชฎเชพเชจเซเชฏ เชเซเชธ เชเซ, เชคเซ เชคเชฎเซ ValueTask เชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชตเชฟเชถเซ เชตเชฟเชเชพเชฐเซ เชถเชเซ เชเซ.
เชเซเชฏเชพเชฐเซ เช เชฎเชจเซ เชธเชเชฆเซเชถ เชฎเชพเชเซ เชตเชฟเชจเชเชคเซ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เชเซ, เชคเซเชฏเชพเชฐเซ เช เชฎเซ เชถเชฌเซเชฆเชเซเชถเชฎเชพเช เชเช TaskCompletionSource เชฌเชจเชพเชตเซเช เชเซเช เช เชจเซ เชฎเซเชเซเช เชเซเช, เช เชจเซ เชชเชเซ เชชเชนเซเชฒเชพ เชถเซเช เชฅเชพเชฏ เชคเซเชจเซ เชฐเชพเชน เชเซเช: เชเชฒเซเชฒเซเชเชฟเชค เชธเชฎเชฏ เช เชเชคเชฐเชพเชฒ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชเซ เช เชฅเชตเชพ เชธเชเชฆเซเชถ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เชเซ.
ValueTask: เชถเชพ เชฎเชพเชเซ เช เชจเซ เชเซเชตเซ เชฐเซเชคเซ
async/await เชเชชเชฐเซเชเชฐเซ, เชเซเชฎ เชเซ เชฏเซเชฒเซเชก เชฐเซเชเชฐเซเชจ เชเชชเชฐเซเชเชฐ, เชชเชฆเซเชงเชคเชฟเชฎเชพเชเชฅเซ เชธเซเชเซเช เชฎเชถเซเชจ เชเชจเชฐเซเช เชเชฐเซ เชเซ, เช เชจเซ เช เชเช เชจเชตเชพ เชเชฌเซเชเซเชเซเชเชจเซเช เชจเชฟเชฐเซเชฎเชพเชฃ เชเซ, เชเซ เชฒเชเชญเช เชนเชเชฎเซเชถเชพ เชฎเชนเชคเซเชตเชจเซเช เชจเชฅเซ เชนเซเชคเซเช, เชชเชฐเชเชคเซ เชญเชพเชเซเชฏเซ เช เชเชฟเชธเซเชธเชพเชเชฎเชพเช เชคเซ เชธเชฎเชธเซเชฏเชพ เชเชญเซ เชเชฐเซ เชถเชเซ เชเซ. เช เชเซเชธ เชเชตเซ เชชเชฆเซเชงเชคเชฟ เชนเซเช เชถเชเซ เชเซ เชเซเชจเซ เชเชฐเซเชเชฐ เชตเชพเชฐเชเชตเชพเชฐ เชเชนเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช เชฎเซ เชฆเชธ เช เชจเซ เชธเซเชเชเชกเซ เชนเชเชพเชฐเซ เชเซเชฒเซเชธ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช. เชเซ เชเชตเซ เชชเชฆเซเชงเชคเชฟ เชเชตเซ เชฐเซเชคเซ เชฒเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ เชฎเซเชเชพ เชญเชพเชเชจเชพ เชเชฟเชธเซเชธเชพเชเชฎเชพเช เชคเซ เชคเชฎเชพเชฎ เชชเซเชฐเชคเซเชเซเชทเชพ เชชเชฆเซเชงเชคเชฟเชเชจเซ เชฌเชพเชฏเชชเชพเชธ เชเชฐเซเชจเซ เชชเชฐเชฟเชฃเชพเชฎ เชเชชเซ เชเซ, เชคเซ .NET เชเชจเซ เชเชชเซเชเชฟเชฎเชพเชเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเช เชธเชพเชงเชจ เชชเซเชฐเซเช เชชเชพเชกเซ เชเซ - ValueTask เชฎเชพเชณเชเซเช. เชคเซเชจเซ เชธเซเชชเชทเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เชเชพเชฒเซ เชคเซเชจเชพ เชเชชเชฏเซเชเชจเซเช เชเชฆเชพเชนเชฐเชฃ เชเซเชเช: เชคเซเชฏเชพเช เชเช เชเซเชถ เชเซ เชเซ เชเชชเชฃเซ เชเชฃเซ เชตเชพเชฐ เชเชเช เชเซเช. เชคเซเชฎเชพเช เชเซเชเชฒเชพเช เชฎเซเชฒเซเชฏเซ เชเซ เช เชจเซ เชชเชเซ เช เชฎเซ เชคเซเชจเซ เชซเชเซเชค เชชเชฐเชค เชเชฐเซเช เชเซเช; เชเซ เชจเชนเซเช, เชคเซ เช เชฎเซ เชคเซเชจเซ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชเซเชเชฒเชพเช เชงเซเชฎเชพ IO เชชเชฐ เชเชเช เชเซเช. เชนเซเช เชฌเชพเชฆเชฎเชพเช เช เชธเซเชฎเซเชณ เชฐเซเชคเซ เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช, เชเซเชจเซ เช เชฐเซเชฅ เชเซ เชเซ เชธเชฎเชเซเชฐ เชชเชฆเซเชงเชคเชฟ เช เชธเซเชฎเซเชณ เชนเซเชตเชพเชจเซเช เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชเซ. เชเชฎ, เชชเชฆเซเชงเชคเชฟ เชฒเชเชตเชพเชจเซ เชธเซเชชเชทเซเช เชฐเซเชค เชจเซเชเซ เชฎเซเชเชฌ เชเซ:
public async Task<string> GetById(int id) {
if (cache.TryGetValue(id, out string val))
return val;
return await RequestById(id);
}
เชฅเซเชกเซเช เชเชชเซเชเชฟเชฎเชพเชเช เชเชฐเชตเชพเชจเซ เชเชเซเชเชพเชจเซ เชเชพเชฐเชฃเซ, เช เชจเซ เช เชเซเชกเชจเซ เชเชฎเซเชชเชพเชเชฒ เชเชฐเชคเซ เชตเชเชคเซ เชฐเซเชเชฒเชฟเชจ เชถเซเช เชเชจเชฐเซเช เชเชฐเชถเซ เชคเซเชจเชพ เชธเชนเซเช เชกเชฐเชจเซ เชเชพเชฐเชฃเซ, เชคเชฎเซ เช เชเชฆเชพเชนเชฐเชฃเชจเซ เชจเซเชเซ เชชเซเชฐเชฎเชพเชฃเซ เชซเชฐเซเชฅเซ เชฒเชเซ เชถเชเซ เชเซ:
public Task<string> GetById(int id) {
if (cache.TryGetValue(id, out string val))
return Task.FromResult(val);
return RequestById(id);
}
เชเชฐเซเชเชฐ, เช เชเชฟเชธเซเชธเชพเชฎเชพเช เชถเซเชฐเซเชทเซเช เชเชเซเชฒ เช เชนเซเช-เชชเชพเชฅเชจเซ เชเชชเซเชเชฟเชฎเชพเชเช เชเชฐเชตเชพเชจเซ เชเซ, เชเชเชฒเซ เชเซ, เชเซเชเชชเชฃ เชฌเชฟเชจเชเชฐเซเชฐเซ เชซเชพเชณเชตเชฃเซ เช เชจเซ GC เชชเชฐ เชฒเซเชก เชเชฐเซเชฏเชพ เชตเชฟเชจเชพ เชถเชฌเซเชฆเชเซเชถเชฎเชพเชเชฅเซ เชฎเซเชฒเซเชฏ เชฎเซเชณเชตเชตเซเช, เชเซเชฏเชพเชฐเซ เชคเซ เชฆเซเชฐเซเชฒเชญ เชเชฟเชธเซเชธเชพเชเชฎเชพเช เชเซเชฏเชพเชฐเซ เชเชชเชฃเซ เชนเชเซ เชชเชฃ เชกเซเชเชพ เชฎเชพเชเซ IO เชชเชฐ เชเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ. , เชฌเชงเซเช เชเซเชจเซ เชฐเซเชคเซ เชตเชคเซเชคเชพ/เชฎเชพเชเชจเชธ เชฐเชนเซเชถเซ:
public ValueTask<string> GetById(int id) {
if (cache.TryGetValue(id, out string val))
return new ValueTask<string>(val);
return new ValueTask<string>(RequestById(id));
}
เชเชพเชฒเซ เชเซเชกเชจเชพ เช เชญเชพเช เชชเชฐ เชจเชเซเชเชฅเซ เชจเชเชฐ เชเชฐเซเช: เชเซ เชเซเชถเชฎเชพเช เชเซเช เชฎเซเชฒเซเชฏ เชนเซเชฏ, เชคเซ เช เชฎเซ เชเช เชฎเชพเชณเชเซเช เชฌเชจเชพเชตเซเช เชเซเช, เช เชจเซเชฏเชฅเชพ เชตเชพเชธเซเชคเชตเชฟเช เชเชพเชฐเซเชฏ เช เชฐเซเชฅเชชเซเชฐเซเชฃ เชเชเชฎเชพเช เชเชตเชฐเชฟเชค เชฅเช เชเชถเซ. เชเซเชฒเชฟเชเช เชเซเชก เช เชเซเชกเชจเซ เชเชฏเชพ เชชเชพเชฅเชฎเชพเช เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ เชคเซเชจเซ เชชเชฐเชตเชพ เชเชฐเชคเซเช เชจเชฅเซ: ValueTask, C# เชธเชฟเชจเซเชเซเชเซเชธเชจเชพ เชฆเซเชทเซเชเชฟเชเซเชฃเชฅเซ, เช เชเชฟเชธเซเชธเชพเชฎเชพเช เชจเชฟเชฏเชฎเชฟเชค เชเชพเชฐเซเชฏ เชเซเชตเซเช เช เชตเชฐเซเชคเชจ เชเชฐเชถเซ.
TaskSchedulers: เชเชพเชธเซเช เชฒเซเชเช เชตเซเชฏเซเชนเชฐเชเชจเชพเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเชตเซเช
เชเชเชพเชฎเซ API เชเซ เชเซ เชนเซเช เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชตเชพ เชฎเชพเชเชเซ เชเซเช เชคเซ เชตเชฐเซเช เชเซ เชเชพเชฐเซเชฏ เช เชจเซเชธเซเชเชฟ เช เชจเซ เชคเซเชจเชพ เชกเซเชฐเชฟเชตเซเชเชฟเชตเซเช. เชฎเซเช เชเชชเชฐ เชชเชนเซเชฒเซเชฅเซ เช เชเชฒเซเชฒเซเช เชเชฐเซเชฏเซ เชเซ เชเซ TPL เชชเชพเชธเซ เชธเชฎเชเซเชฐ เชฅเซเชฐเซเชกเซ เชชเชฐ เชเชพเชฐเซเชฏเซเชจเซเช เชตเชฟเชคเชฐเชฃ เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชตเซเชฏเซเชนเชฐเชเชจเชพเชเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชเซ. เชเชตเซ เชตเซเชฏเซเชนเชฐเชเชจเชพเช TaskScheduler เชตเชฐเซเชเชจเชพ เชตเชเชถเชเซเชฎเชพเช เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชคเชฎเชจเซ เชเชฐเซเชฐ เชชเชกเซ เชถเชเซ เชคเซเชตเซ เชฒเชเชญเช เชเซเชเชชเชฃ เชตเซเชฏเซเชนเชฐเชเชจเชพ เชชเซเชธเซเชคเชเชพเชฒเชฏเชฎเชพเช เชฎเชณเซ เชถเชเซ เชเซ. เชธเชฎเชพเชเชคเชฐ เชเชเซเชธเซเชเซเชจเซเชถเชจเซเชธ เชเชเซเชธเซเชเซเชฐเชพเช, เชฎเชพเชเชเซเชฐเซเชธเซเชซเซเช เชฆเซเชตเชพเชฐเชพ เชตเชฟเชเชธเชฟเชค, เชชเชฐเชเชคเซ .NET เชจเซ เชญเชพเช เชจเชฅเซ, เชชเชฐเชเชคเซ Nuget เชชเซเชเซเช เชคเชฐเซเชเซ เชชเซเชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซเชฒ เชเซ. เชเชพเชฒเซ เชคเซเชฎเชพเชเชฅเซ เชเซเชเชฒเชพเชเชจเซ เชธเชเชเซเชทเชฟเชชเซเชคเชฎเชพเช เชเซเชเช:
- CurrentThreadTaskScheduler โ เชตเชฐเซเชคเชฎเชพเชจ เชฅเซเชฐเซเชก เชชเชฐ เชเชพเชฐเซเชฏเซ เชเชฒเชพเชตเซ เชเซ
- เชฒเชฟเชฎเชฟเชเซเชก เชเชจเซเชเชฐเชจเซเชธเซ เชฒเซเชตเชฒ เชเชพเชธเซเช เชถเซเชกเซเชฏเซเชฒเชฐ โ เชชเชฐเชฟเชฎเชพเชฃ N เชฆเซเชตเชพเชฐเชพ เชตเชพเชฐเชพเชซเชฐเชคเซ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเชคเชพ เชเชพเชฐเซเชฏเซเชจเซ เชธเชเชเซเชฏเชพเชจเซ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชเชฐเซ เชเซ, เชเซ เชเชจเซเชธเซเชเซเชฐเชเซเชเชฐเชฎเชพเช เชธเซเชตเซเชเชพเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
- เชเชฐเซเชกเชฐ เชเชฐเซเชฒ เชเชพเชธเซเช เชถเซเชกเซเชฏเซเชฒเชฐ โ LimitedConcurrencyLevelTaskScheduler(1) เชคเชฐเซเชเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชฅเชฏเซเชฒ เชเซ, เชคเซเชฅเซ เชเชพเชฐเซเชฏเซ เชเซเชฐเชฎเชฟเช เชฐเซเชคเซ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ.
- WorkStealingTaskScheduler - เชเชเชพเชฐเซ
เชเชพเชฎเชจเซ เชเซเชฐเซ เชเชพเชฐเซเชฏ เชตเชฟเชคเชฐเชฃ เชฎเชพเชเซ เช เชญเชฟเชเชฎ. เชเชตเชถเซเชฏเชเชชเชฃเซ เชคเซ เชเช เช เชฒเช เชฅเซเชฐเซเชกเชชเซเชฒ เชเซ. เชธเชฎเชธเซเชฏเชพเชจเซเช เชจเชฟเชฐเชพเชเชฐเชฃ เชเชฐเซ เชเซ เชเซ .NET ThreadPool เชฎเชพเช เชเช เชธเซเชฅเชฟเชฐ เชตเชฐเซเช เชเซ, เชเซ เชฌเชงเซ เชเชชเซเชฒเชฟเชเซเชถเชจเซ เชฎเชพเชเซ เชเช เชเซ, เชเซเชจเซ เช เชฐเซเชฅ เชเซ เชเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเชพ เชเช เชญเชพเชเชฎเชพเช เชคเซเชจเซ เชเชตเชฐเชฒเซเชกเชฟเชเช เช เชฅเชตเชพ เชเซเชเซ เชเชชเชฏเซเช เชฌเซเชเชพ เชญเชพเชเชฎเชพเช เชเชกเช เชธเชฐเซ เชคเชฐเชซ เชฆเซเชฐเซ เชถเชเซ เชเซ. เชคเชฆเซเชชเชฐเชพเชเชค, เชเชตเซ เชเชพเชฎเซเชเชจเซเช เชเชพเชฐเชฃ เชธเชฎเชเชตเซเช เช เชคเซเชฏเชเชค เชฎเซเชถเซเชเซเชฒ เชเซ. เชคเซ. เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเชพ เชเชตเชพ เชญเชพเชเซเชฎเชพเช เช เชฒเช เชตเชฐเซเชเชธเซเชเซเชฒเชฟเชเช เชเชพเชธเซเช เชถเซเชกเซเชฏเซเชฒเชฐเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเซ เชถเชเซ เชเซ เชเซเชฏเชพเช เชฅเซเชฐเซเชกเชชเซเชฒเชจเซ เชเชชเชฏเซเช เชเชเซเชฐเชฎเช เช เชจเซ เช เชฃเชงเชพเชฐเซ เชนเซเช เชถเชเซ เชเซ. - เชเชคเชพเชฐเชฌเชฆเซเชงเชเชพเชธเซเช เชถเซเชกเซเชฏเซเชฒเชฐ โ เชคเชฎเชจเซ เช เชเซเชฐเชคเชพ เชเชคเชพเชฐเชจเชพ เชจเชฟเชฏเชฎเซ เช เชจเซเชธเชพเชฐ เชเชพเชฐเซเชฏเซ เชเชฐเชตเชพ เชฆเซ เชเซ
- ThreadPerTaskScheduler โ เชฆเชฐเซเช เชเชพเชฐเซเชฏ เชฎเชพเชเซ เชเช เช เชฒเช เชฅเซเชฐเซเชก เชฌเชจเชพเชตเซ เชเซ เชเซ เชคเซเชจเชพ เชชเชฐ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชเชตเชพ เชเชพเชฐเซเชฏเซ เชฎเชพเชเซ เชเชชเชฏเซเชเซ เชฅเช เชถเชเซ เชเซ เชเซ เชชเซเชฐเซเชฃ เชฅเชตเชพเชฎเชพเช เช เชฃเชงเชพเชฐเซ เชฐเซเชคเซ เชฒเชพเชเชฌเซ เชธเชฎเชฏ เชฒเซ เชเซ.
เชเช เชธเชฐเชธ เชตเชฟเชเชคเชตเชพเชฐ เชเซ
Tasks เชฅเซ เชธเชเชฌเชเชงเชฟเชค เชฆเชฐเซเช เชตเชธเซเชคเซเชจเชพ เช เชจเซเชเซเชณ เชกเซเชฌเชเซเชเช เชฎเชพเชเซ, เชตเชฟเชเซเชฏเซเช เชฒ เชธเซเชเซเชกเชฟเชฏเซ เชชเชพเชธเซ Tasks เชตเชฟเชจเซเชกเซ เชเซ. เช เชตเชฟเชเชกเซเชฎเชพเช เชคเชฎเซ เชเชพเชฐเซเชฏเชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฅเชฟเชคเชฟ เชเซเช เชถเชเซ เชเซ เช เชจเซ เชเซเชกเชจเซ เชนเชพเชฒเชฎเชพเช เชเชเซเชเซเชเซเชฏเซเชเซเชเช เชฒเชพเชเชจ เชชเชฐ เชเชพเช.
PLinq เช เชจเซ เชธเชฎเชพเชเชคเชฐ เชตเชฐเซเช
Tasks เช
เชจเซ เชคเซเชฎเชจเชพ เชตเชฟเชถเซ เชเชฃเชพเชตเซเชฒ เชฆเชฐเซเช เชตเชธเซเชคเซ เชเชชเชฐเชพเชเชค, .NET เชฎเชพเช เชตเชงเซ เชฌเซ เชฐเชธเชชเซเชฐเชฆ เชธเชพเชงเชจเซ เชเซ: PLinq (Linq2Parallel) เช
เชจเซ เชธเชฎเชพเชเชคเชฐ เชตเชฐเซเช. เชชเซเชฐเชฅเชฎ เชฌเชนเซเชตเชฟเชง เชฅเซเชฐเซเชกเซ เชชเชฐ เชคเชฎเชพเชฎ Linq เชเชพเชฎเชเซเชฐเซเชจเชพ เชธเชฎเชพเชเชคเชฐ เช
เชฎเชฒเชจเซเช เชตเชเชจ เชเชชเซ เชเซ. เชฅเซเชฐเซเชกเซเชจเซ เชธเชเชเซเชฏเชพ WithDegreeOfParallelism เชเชเซเชธเซเชเซเชเชถเชจ เชชเชฆเซเชงเชคเชฟเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเช เชตเซ เชถเชเชพเชฏ เชเซ. เชเชฎเชจเชธเซเชฌเซ, เชฎเซเชเชพเชญเชพเชเซ เชคเซเชจเชพ เชกเชฟเชซเซเชฒเซเช เชฎเซเชกเชฎเชพเช PLinq เชชเชพเชธเซ เชคเชฎเชพเชฐเชพ เชกเซเชเชพ เชธเซเชคเซเชฐเซเชคเชจเชพ เชเชเชคเชฐเชฟเช เชตเชฟเชถเซ เชชเซเชฐเชคเซ เชฎเชพเชนเชฟเชคเซ เชจเชฅเซ เชนเซเชคเซ เชเซเชฅเซ เชเชฐเซเชจเซ เชจเซเชเชงเชชเชพเชคเซเชฐ เชเชกเชช เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชถเชเชพเชฏ, เชฌเซเชเซ เชคเชฐเชซ, เชชเซเชฐเชฏเชพเชธ เชเชฐเชตเชพเชจเซ เชเชฟเชเชฎเชค เชเชฃเซ เชเชเซ เชนเซเชฏ เชเซ: เชคเชฎเชพเชฐเซ เชชเชนเซเชฒเชพ AsParallel เชชเชฆเซเชงเชคเชฟเชจเซ เชเซเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. Linq เชชเชฆเซเชงเชคเชฟเชเชจเซ เชธเชพเชเชเชณ เช
เชจเซ เชชเซเชฐเชฆเชฐเซเชถเชจ เชชเชฐเซเชเซเชทเชฃเซ เชเชฒเชพเชตเซ. เชตเชงเซเชฎเชพเช, เชชเชพเชฐเซเชเซเชถเชจเซ เชฎเชฟเชเซเชจเชฟเชเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเชฎเชพเชฐเชพ เชกเซเชเชพ เชธเซเชคเซเชฐเซเชคเชจเซ เชชเซเชฐเชเซเชคเชฟ เชตเชฟเชถเซ PLinq เชจเซ เชตเชงเชพเชฐเชพเชจเซ เชฎเชพเชนเชฟเชคเซ เชฎเซเชเชฒเชตเซ เชถเชเซเชฏ เชเซ. เชคเชฎเซ เชตเชงเซ เชตเชพเชเชเซ เชถเชเซ เชเซ
เชธเชฎเชพเชเชคเชฐ เชธเซเชเซเชเชฟเช เชเซเชฒเชพเชธ เชธเชฎเชพเชเชคเชฐเชฎเชพเช เชซเซเชฐเซเช เชเชฒเซเชเซเชถเชจ เชฆเซเชตเชพเชฐเชพ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชเชฐเชตเชพ, เชซเซเชฐ เชฒเซเชช เชเชฒเชพเชตเชตเชพ เช เชจเซ เชธเชฎเชพเชเชคเชฐ เชเชจเซเชตเซเชเชฎเชพเช เชฌเชนเซเชตเชฟเชง เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชเชจเซ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซเชจเซ เชชเชฆเซเชงเชคเชฟเช เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ. เชเชฃเชคเชฐเซเช เชชเซเชฐเซเชฃ เชจ เชฅเชพเชฏ เชคเซเชฏเชพเช เชธเซเชงเซ เชตเชฐเซเชคเชฎเชพเชจ เชฅเซเชฐเซเชกเชจเซเช เช เชฎเชฒเซเชเชฐเชฃ เช เชเชเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ. เชเซเชฒเซเชฒเซ เชฆเชฒเซเชฒ เชคเชฐเซเชเซ ParallelOptions เชชเชธเชพเชฐ เชเชฐเซเชจเซ เชฅเซเชฐเซเชกเซเชจเซ เชธเชเชเซเชฏเชพ เชเซเช เชตเซ เชถเชเชพเชฏ เชเซ. เชคเชฎเซ เชตเชฟเชเชฒเซเชชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ TaskScheduler เช เชจเซ CancellationToken เชจเซ เชชเชฃ เชเชฒเซเชฒเซเช เชเชฐเซ เชถเชเซ เชเซ.
เชคเชพเชฐเชฃเซ
เชเซเชฏเชพเชฐเซ เชฎเซเช เชฎเชพเชฐเชพ เช เชนเซเชตเชพเชฒเชจเซ เชธเชพเชฎเชเซเชฐเซ เช เชจเซ เชคเซเชจเชพ เชชเชเซเชจเชพ เชฎเชพเชฐเชพ เชเชพเชฐเซเชฏ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฎเซเช เชเชเชคเซเชฐเชฟเชค เชเชฐเซเชฒเซ เชฎเชพเชนเชฟเชคเซเชจเชพ เชเชงเชพเชฐเซ เช เชฒเซเช เชฒเชเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช, เชคเซเชฏเชพเชฐเซ เชฎเชจเซ เชเชถเชพ เชจเชนเซเชคเซ เชเซ เชคเซเชฎเชพเช เชเชเชฒเซเช เชฌเชงเซเช เชนเชถเซ. เชนเชตเซ, เชเซเชฏเชพเชฐเซ เชเซเชเซเชธเซเช เชเชกเชฟเชเชฐ เชเซ เชเซเชฎเชพเช เชนเซเช เช เชฒเซเช เชฒเชเซ เชฐเชนเซเชฏเซ เชเซเช เชคเซ เชจเชฟเชเชฆเชพเชชเซเชฐเซเชตเช เชฎเชจเซ เชเชนเซ เชเซ เชเซ เชชเซเชทเซเช 15 เชเชฏเซเช เชเซ, เชนเซเช เชตเชเชเชพเชณเชพเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซเชจเซ เชธเชพเชฐเชพเชเชถ เชเชชเซเชถ. เช เชจเซเชฏ เชฏเซเชเซเชคเชฟเช, APIs, เชตเชฟเชเซเชฏเซเช เชฒ เชเซเชฒเซเชธ เช เชจเซ เชฎเซเชถเซเชเซเชฒเซเช เชเชเชพเชฎเซ เชฒเซเชเชฎเชพเช เชเชตเชฐเซ เชฒเซเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชคเชพเชฐเชฃเซ:
- เชเชงเซเชจเชฟเช เชชเซเชธเซเชจเชพ เชธเชเชธเชพเชงเชจเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชฅเซเชฐเซเชกเซ, เช เชธเซเชฎเซเชณ เช เชจเซ เชธเชฎเชพเชจเชคเชพ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชธเชพเชงเชจเซ เชเชพเชฃเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
- เช เชนเซเชคเซเช เชฎเชพเชเซ .NET เชชเชพเชธเซ เชเชฃเชพเช เชตเชฟเชตเชฟเชง เชธเชพเชงเชจเซ เชเซ
- เชคเซ เชฌเชงเชพ เชเช เช เชธเชฎเชฏเซ เชฆเซเชเชพเชฏเชพ เชจเชฅเซ, เชคเซเชฅเซ เชคเชฎเซ เชตเชพเชฐเชเชตเชพเชฐ เชฒเซเชเชธเซ เชถเซเชงเซ เชถเชเซ เชเซ, เชเซ เชเซ, เชเชฃเชพ เชชเซเชฐเชฏเชคเซเชจเซ เชตเชฟเชจเชพ เชเซเชจเชพ API เชจเซ เชเชจเซเชตเชฐเซเช เชเชฐเชตเชพเชจเซ เชฐเซเชคเซ เชเซ.
- .NET เชฎเชพเช เชฅเซเชฐเซเชกเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเซเช เช เชฅเซเชฐเซเชก เช เชจเซ เชฅเซเชฐเซเชกเชชเซเชฒ เชตเชฐเซเชเซ เชฆเซเชตเชพเชฐเชพ เชฐเชเซ เชฅเชพเชฏ เชเซ
- Thread.Abort, Thread.Interrupt เช เชจเซ Win32 API TerminateThread เชชเชฆเซเชงเชคเชฟเช เชเชคเชฐเชจเชพเช เชเซ เช เชจเซ เชเชชเชฏเซเช เชฎเชพเชเซ เชญเชฒเชพเชฎเชฃ เชเชฐเชตเชพเชฎเชพเช เชเชตเชคเซ เชจเชฅเซ. เชคเซเชจเชพ เชฌเชฆเชฒเซ, เชเซเชจเซเชธเชฒเซเชถเชจ เชเซเชเชจ เชฎเชฟเชเซเชจเชฟเชเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชตเชงเซ เชธเชพเชฐเซเช เชเซ
- เชชเซเชฐเชตเชพเชน เช เชเช เชฎเซเชฒเซเชฏเชตเชพเชจ เชธเชเชธเชพเชงเชจ เชเซ เช เชจเซ เชคเซเชจเซ เชชเซเชฐเชตเช เซ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชเซ. เชเชเชจเชพเชเชจเซ เชฐเชพเชน เชเซเชตเชพเชฎเชพเช เชฅเซเชฐเซเชกเซ เชตเซเชฏเชธเซเชค เชนเซเชฏ เชคเซเชตเซ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช เชเชพเชณเชตเซ เชเซเชเช. เช เชฎเชพเชเซ TaskCompletionSource เชตเชฐเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เช เชจเซเชเซเชณ เชเซ
- เชธเชฎเชพเชจเชคเชพ เช เชจเซ เช เชธเซเชฎเซเชณ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชธเซเชฅเซ เชถเชเซเชคเชฟเชถเชพเชณเซ เช เชจเซ เช เชฆเซเชฏเชคเชจ .NET เชเซเชฒเซเชธ เชเซ Tasks.
- c# async/await เชเชชเชฐเซเชเชฐเซ เชจเซเชจ-เชฌเซเชฒเซเชเซเชเช เชตเซเชเชเชจเซ เชเซเชฏเชพเชฒ เช เชฎเชฒเชฎเชพเช เชฎเซเชเซ เชเซ
- เชคเชฎเซ TaskScheduler เชฆเซเชตเชพเชฐเชพ เชฎเซเชณเชตเซเชฒเชพ เชตเชฐเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชธเชฎเชเซเชฐ เชฅเซเชฐเซเชกเซเชฎเชพเช Tasksเชจเชพ เชตเชฟเชคเชฐเชฃเชจเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเซ เชถเชเซ เชเซ
- ValueTask เชฎเชพเชณเชเซเช เชนเซเช-เชชเชพเชฅ เช เชจเซ เชฎเซเชฎเชฐเซ-เชเซเชฐเชพเชซเชฟเชเชจเซ เชเชชเซเชเชฟเชฎเชพเชเช เชเชฐเชตเชพเชฎเชพเช เชเชชเชฏเซเชเซ เชฅเช เชถเชเซ เชเซ
- เชตเชฟเชเซเชฏเซเช เชฒ เชธเซเชเซเชกเชฟเชฏเซเชจเชพ เชเชพเชฐเซเชฏเซ เช เชจเซ เชฅเซเชฐเซเชกเซเชธ เชตเชฟเชจเซเชกเซ เชฎเชฒเซเชเซ-เชฅเซเชฐเซเชกเซเชก เช เชฅเชตเชพ เช เชธเซเชฎเซเชณ เชเซเชกเชจเซ เชกเชฟเชฌเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฃเซ เชฌเชงเซ เชเชชเชฏเซเชเซ เชฎเชพเชนเชฟเชคเซ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ.
- PLinq เช เชเช เชธเชฐเชธ เชธเชพเชงเชจ เชเซ, เชชเชฐเชเชคเซ เชคเซเชฎเชพเช เชคเชฎเชพเชฐเชพ เชกเซเชเชพ เชธเซเชคเซเชฐเซเชค เชตเชฟเชถเซ เชชเซเชฐเชคเซ เชฎเชพเชนเชฟเชคเซ เชจ เชนเซเช เชถเชเซ, เชชเชฐเชเชคเซ เชชเชพเชฐเซเชเซเชถเชจเซเชเช เชฎเชฟเชเซเชจเชฟเชเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเซเชจเซ เช เซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ.
- เชเชพเชฒเซ เชฐเชนเซ เชถเชเชพเชฏโฆ
เชธเซเชฐเซเชธ: www.habr.com