WEBVTT

00:00:00.000 --> 00:00:02.910
嘿，朋友們回來了
和我的好朋友迪恩

00:00:02.910 --> 00:00:05.760
在高級談話
非同步等待，所以調諧。

00:00:05.760 --> 00:00:12.810
[音樂]

00:00:12.810 --> 00:00:14.925
• 歡迎大家回來
到薩馬林秀。

00:00:14.925 --> 00:00:16.110
我是你的主人詹姆斯·蒙特馬格諾

00:00:16.110 --> 00:00:18.570
今天，回到第二個
時間我的好朋友

00:00:18.570 --> 00:00:21.540
迪恩在談論亞同步
等待。怎麼樣，迪恩？

00:00:21.540 --> 00:00:22.380
* 很好。你好嗎？

00:00:22.380 --> 00:00:24.030
我做的太棒了。

00:00:24.030 --> 00:00:26.100
現在，在第一集，

00:00:26.100 --> 00:00:29.610
你展示了基本用途
非同步等待的情況，

00:00:29.610 --> 00:00:31.665
怎麼了，什麼好。

00:00:31.665 --> 00:00:33.150
你今天為我們準備了什麼？

00:00:33.150 --> 00:00:34.200
所以這次

00:00:34.200 --> 00:00:35.700
我們將進行高級方案。

00:00:35.700 --> 00:00:37.290
一堆邊緣案例。

00:00:37.290 --> 00:00:39.780
使用高級方案
不同的機制

00:00:39.780 --> 00:00:41.610
在TPL和深入。

00:00:41.610 --> 00:00:43.440
* 非常真棒。酷。我喜歡。

00:00:43.440 --> 00:00:45.840
好吧，我們不要浪費時間
讓我們進入代碼。

00:00:45.840 --> 00:00:47.565
讓我們直接得到它。好吧。

00:00:47.565 --> 00:00:50.295
對於最後一個，這是最多的，

00:00:50.295 --> 00:00:51.750
我不想說複雜

00:00:51.750 --> 00:00:53.640
但一個非常大的邊緣案件。

00:00:53.640 --> 00:00:54.165
[ ] 好的。

00:00:54.165 --> 00:00:57.225
* 所以這是長跑
任務。這麼說你很熟悉？

00:00:57.225 --> 00:00:58.035
"我是。

00:00:58.035 --> 00:01:00.260
• 在 中運行的任務如此長

00:01:00.260 --> 00:01:02.960
TPL 是
可以運行很長時間。

00:01:02.960 --> 00:01:04.850
有時候，你只是
想運行的東西。

00:01:04.850 --> 00:01:09.470
也許是在拉，也許是
檢查加速度計值，

00:01:09.470 --> 00:01:10.880
類似的東西，
在後臺運行。

00:01:10.880 --> 00:01:12.745
你並不想阻止它

00:01:12.745 --> 00:01:15.360
所以在一個壞的情況下

00:01:15.360 --> 00:01:17.220
以我的壞例子為例

00:01:17.220 --> 00:01:19.190
我要開始

00:01:19.190 --> 00:01:23.285
a 100 個任務
每秒列印點。

00:01:23.285 --> 00:01:24.350
* 這是有道理的。

00:01:24.350 --> 00:01:25.805
• 他們只是要運行。

00:01:25.805 --> 00:01:28.410
火和忘記，忘記
他們，他們只是運行。

00:01:28.410 --> 00:01:30.210
• 視覺工作室甚至大喊大叫。

00:01:30.210 --> 00:01:33.060
* 確切地說。視覺
工作室比我聰明。

00:01:33.060 --> 00:01:36.020
然後，除此之外，

00:01:36.020 --> 00:01:38.500
我要運行100個任務
實際上完成。

00:01:38.500 --> 00:01:39.240
"好的。

00:01:39.240 --> 00:01:40.550
* 所以，我們將看到什麼
發生這些。

00:01:40.550 --> 00:01:43.310
因此，這些任務是
任務中的任務，

00:01:43.310 --> 00:01:44.660
你真的想跑

00:01:44.660 --> 00:01:46.400
也許你正在下載HTML

00:01:46.400 --> 00:01:48.920
下載圖像，
做這樣的事。

00:01:48.920 --> 00:01:50.810
好吧。這裡有一個壞例子。

00:01:50.810 --> 00:01:54.920
我們正在運行 100 個任務
每秒列印點。

00:01:54.920 --> 00:01:57.575
因此，每一個這些
任務正在列印點。

00:01:57.575 --> 00:01:59.705
每一秒
是開槍忘了

00:01:59.705 --> 00:02:02.374
然後，我們開始
a 100 個其他任務

00:02:02.374 --> 00:02:04.975
這是測試，
我們真的想跑

00:02:04.975 --> 00:02:07.160
"我明白了。那麼，我們看到了什麼
在輸出在這裡呢？

00:02:07.160 --> 00:02:08.240
* 所以在這裡的輸出，

00:02:08.240 --> 00:02:10.370
我們將看到，一堆

00:02:10.370 --> 00:02:12.350
執行緒正在啟動
從執行緒池。

00:02:12.350 --> 00:02:15.545
此is.NET管理
我們的執行緒為我們。

00:02:15.545 --> 00:02:16.040
"好的。明白了。

00:02:16.040 --> 00:02:20.285
[ ] 我們之前討論過。因此，作為
你可以看到，它真的很慢。

00:02:20.285 --> 00:02:23.090
沒有重量
在這兩者之間。

00:02:23.090 --> 00:02:26.725
所以第二批100
任務應該已經運行。

00:02:26.725 --> 00:02:29.940
但是，因為這些是如此堅持，

00:02:29.940 --> 00:02:32.630
他們運行每
第二個任務為 100 個。

00:02:32.630 --> 00:02:35.120
這真的需要
一會兒旋轉。

00:02:35.120 --> 00:02:38.150
因此，我們將看到一旦執行緒
池趕上這裡。

00:02:38.150 --> 00:02:41.380
我們應該開始看到這些
測試發射。我們開始吧。

00:02:41.380 --> 00:02:42.130
我們走吧。

00:02:42.130 --> 00:02:43.340
* 所以這些任務，我們

00:02:43.340 --> 00:02:45.275
想，他們
運行到完成。

00:02:45.275 --> 00:02:46.610
但是，在中間，你會看到

00:02:46.610 --> 00:02:50.205
以前的任務火和忘記
仍在列印他們的點。

00:02:50.205 --> 00:02:53.280
"我明白了。抓到你了所以
一切都是一切。

00:02:53.280 --> 00:02:56.655
此外，我們看到此垃圾回收
有點瘋狂

00:02:56.655 --> 00:02:57.840
我們不太滿意，是的。

00:02:57.840 --> 00:03:02.300
* 否。這不是太
不尋常的是誠實的。

00:03:02.300 --> 00:03:05.090
我們已經看到了這個案例
執行緒池位於何處

00:03:05.090 --> 00:03:08.225
只是窒息，沒有任務
可以開始幾分鐘。

00:03:08.225 --> 00:03:10.970
有時，如果您使用不正確，

00:03:10.970 --> 00:03:12.320
它會卡住的

00:03:12.320 --> 00:03:14.045
#找到你。那麼，我該如何解決這個問題呢？

00:03:14.045 --> 00:03:16.070
• 讓我們重新開始

00:03:16.070 --> 00:03:18.215
的應用程式，以確保
那些任務都死了

00:03:18.215 --> 00:03:19.550
#找到你。

00:03:19.550 --> 00:03:21.545
[ ] 然後，我們將轉到修復。

00:03:21.545 --> 00:03:21.995
* 當然可以。

00:03:21.995 --> 00:03:25.340
* 所以我們有
工具。

00:03:25.340 --> 00:03:27.965
我們可以有一堆長
在後臺運行，

00:03:27.965 --> 00:03:31.610
但我們需要做的是
使用任務.工廠.開始新。

00:03:31.610 --> 00:03:34.055
裡面的這個代碼是相同的。

00:03:34.055 --> 00:03:35.960
我們只是列印出來那些點。

00:03:35.960 --> 00:03:39.420
但是，然後，在參數
對於創建選項，

00:03:39.420 --> 00:03:42.135
您需要添加
任務創建選項.長時間運行。

00:03:42.135 --> 00:03:45.945
"我明白了。所以這是
內置to.NET任務工廠。

00:03:45.945 --> 00:03:48.570
有何區別
在此任務之間。

00:03:48.570 --> 00:03:50.460
和任務工廠？
從這裡開始，我猜。

00:03:50.460 --> 00:03:52.110
* 所以任務.運行實際上是

00:03:52.110 --> 00:03:56.430
任務.工廠.開始新
預設參數。

00:03:56.430 --> 00:03:57.915
對我們來說，這是一條捷徑。

00:03:57.915 --> 00:03:58.440
#找到你。

00:03:58.440 --> 00:04:01.100
• 所以任務.工廠.開始新
更細細微性。

00:04:01.100 --> 00:04:02.180
我們有一堆參數。

00:04:02.180 --> 00:04:03.695
我添加了指向引用的連結。

00:04:03.695 --> 00:04:04.955
* 美麗。

00:04:04.955 --> 00:04:08.180
* 還有更多
比我們可以適應那裡。

00:04:08.180 --> 00:04:11.785
但是，基本上，當我們設置
任務一樣長，

00:04:11.785 --> 00:04:15.695
它有一個單獨的執行緒
池，它是智慧的

00:04:15.695 --> 00:04:19.655
並且它將能夠超額訂閱。

00:04:19.655 --> 00:04:23.510
您可以閱讀文檔。
因此，讓我們來看看。

00:04:23.510 --> 00:04:26.500
這是唯一的變化
任務.工廠.開始新。

00:04:26.500 --> 00:04:30.540
因此，我們將看到，這些是
100 個列印點的任務。

00:04:30.540 --> 00:04:33.420
我們的其他任務已經開始。

00:04:33.420 --> 00:04:34.185
* 是的。

00:04:34.185 --> 00:04:36.465
類似。我們
甚至不必等待。

00:04:36.465 --> 00:04:38.580
* 所以之前，我們
實際上有一個晶圓。

00:04:38.580 --> 00:04:41.100
一堆他們，他們得到的
計畫。一切都發生了

00:04:41.100 --> 00:04:44.945
所以現在，我們實際上看到
事情按預期工作。

00:04:44.945 --> 00:04:46.985
從一開始

00:04:46.985 --> 00:04:49.590
所有的任務都是
同時運行。

00:04:49.590 --> 00:04:50.220
* 確切地說。

00:04:50.220 --> 00:04:52.025
• 長跑是
仍然繼續。

00:04:52.025 --> 00:04:55.310
您已完成這些
100個任務，我們坐之前

00:04:55.310 --> 00:04:58.565
像20秒
等待它。太瘋狂了

00:04:58.565 --> 00:04:58.790
* 是的。

00:04:58.790 --> 00:04:59.480
• 非常酷。

00:04:59.480 --> 00:05:00.305
"

00:05:00.305 --> 00:05:02.115
迪恩，這太棒了

00:05:02.115 --> 00:05:04.800
這麼多偉大的內容
只是包裝在那裡。

00:05:04.800 --> 00:05:05.160
謝謝，詹姆斯

00:05:05.160 --> 00:05:07.550
* 現在，當然，我們將把
所有的連結顯示

00:05:07.550 --> 00:05:10.490
下面的顯示說明
所有最佳實踐，

00:05:10.490 --> 00:05:12.545
文檔，這
示例代碼，一切。

00:05:12.545 --> 00:05:17.030
您也可以轉到
aka.MS/xamarinbestpractices

00:05:17.030 --> 00:05:19.310
瞭解更多關於所有
最佳實踐

00:05:19.310 --> 00:05:21.820
用於移動 CAT 的 Xamarin
團隊是超級真棒。

00:05:21.820 --> 00:05:23.695
迪恩，非常感謝
顯示這一切關閉。

00:05:23.695 --> 00:05:24.850
* 感謝
我在節目中，詹姆斯。

00:05:24.850 --> 00:05:26.675
* 絕對。乾杯。確保

00:05:26.675 --> 00:05:28.925
你跟隨薩馬林
在 YouTube 上展示，

00:05:28.925 --> 00:05:30.425
第九頻道你知道該去哪裡

00:05:30.425 --> 00:05:31.850
打那個通知鈴

00:05:31.850 --> 00:05:33.725
成為的一部分
通知小隊。

00:05:33.725 --> 00:05:35.390
我是詹姆斯·蒙特馬格諾 這是

00:05:35.390 --> 00:05:38.550
薩馬林秀，和
謝謝你的收看。

00:05:45.230 --> 00:05:48.050
嘿，詹姆斯
只是想登記入住

00:05:48.050 --> 00:05:50.105
並感謝您
觀看此視頻。

00:05:50.105 --> 00:05:53.195
現在，做所有的事情，你
知道你想做這樣的，

00:05:53.195 --> 00:05:55.760
訂閱，和丁
通知鈴，

00:05:55.760 --> 00:05:57.770
成為的一部分
通知小隊。

00:05:57.770 --> 00:05:59.150
當你在這裡，看看

00:05:59.150 --> 00:06:02.360
所有這些真棒視頻
我已經錄下來了

00:06:02.360 --> 00:06:05.970
點擊那東西。點擊
它。小心。做吧。

