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
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
그런 다음, 우리는 시작
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
하지만 우리가 해야 할 일은
Task.Factory.StartNew를 사용합니다.

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
이것은 유일한 변화입니다.
작업.Factory.StartNew.

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용 자마린
슈퍼 굉장한 팀입니다.

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
당신은 자마린을 따라
유튜브에서 보여줘,

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
그 일을 클릭합니다. 클릭
그것은. 이거 보세요. 해봐.

