... | ... | @@ -437,7 +437,7 @@ else |
|
|
**MSDN 참고**
|
|
|
The async and await keywords don't cause additional threads to be created. Async methods don't require multithreading because an async method doesn't run on its own thread. The method runs on the current synchronization context and uses time on the thread only when the method is active.
|
|
|
|
|
|
|
|
|
<br />
|
|
|
2. await Task.Delay() 했을때와 await fs.ReadAsync() 했을 때 blocking 동작이 다른 이유는 무엇인가?
|
|
|
|
|
|
```c#
|
... | ... | @@ -486,7 +486,9 @@ class AsyncTimeTest |
|
|
Console.WriteLine("메인 끝 시간 : " + DateTime.Now.Ticks / 10000);
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
```
|
|
|
|
|
|
<br />
|
|
|
3. 한 메소드 안에 await가 두개 이상이면 어떻게 동작하는가?
|
|
|
|
|
|
```c#
|
... | ... | @@ -528,11 +530,17 @@ class MultiAwaitTest |
|
|
}
|
|
|
}
|
|
|
```
|
|
|
<br />
|
|
|
|
|
|
4. Task에 대한 스터디 보강 (thread는 리턴값이 있는가? Task와 thread 차이는 무엇인가? 왜 Task 타입을 정의했을까?)
|
|
|
다시 한 번 정리하기.
|
|
|
|
|
|
<br />
|
|
|
|
|
|
5. Random 클래스의 seed 역할은 무엇인가?
|
|
|
그냥 Random() 메서드가 발생시키는 난수는 항상 규칙적이다. 이를 의사 난수(pseudo-random number) 라고 한다. 의사 난수는 seed 값에 따라서 결과값이 달라지는데, 이 seed 값이 같으면 매번 같은 결과값이 나온다. 그래서 보통 seed 값에 시간을 넣어 Random() 결과가 시간의 흐름에 따라 계속해서 다르게 출력되는 식으로 이용한다. 이와 같은 방법으로 우리가 흔히 생각하는 의미(실행 할 때마다 값이 다르게 나오는)의 난수를 구현한다.
|
|
|
그냥 Random() 메서드가 발생시키는 난수는 항상 규칙적이다. 이를 의사 난수(pseudo-random number) 라고 한다. 의사 난수는 seed 값에 따라서 결과값이 달라지는데, 이 seed 값이 같으면 매번 같은 결과값이 나온다. 그래서 보통 seed 값에 시간을 넣어 Random() 결과가 시간의 흐름에 따라 계속해서 다르게 출력되는 식으로 이용한다. 이와 같은 방법으로 우리가 흔히 생각하는 의미(실행 할 때마다 값이 다르게 나오는)의 난수를 구현한다.
|
|
|
|
|
|
<br />
|
|
|
|
|
|
6. 람다식의 변수 스코프는?
|
|
|
람다 식은 람다 함수를 정의하는 메서드 범위 내에 있거나 람다 식을 포함하는 형식 범위 내에 있는 외부 변수를 참조할 수 있습니다. (MSDN)
|
... | ... | @@ -583,6 +591,7 @@ class LambdaScope |
|
|
}
|
|
|
```
|
|
|
|
|
|
<br />
|
|
|
|
|
|
7. IEnumerable<T> 변수를 foreach 키워드로 순회하도록 변경 바랍니다.
|
|
|
Func<string, string> selector = (string s) => s.ToUpper();
|
... | ... | |