More actions
(Repair MoniWiki formatting after migration) |
(Repair batch-0001 pages from live compare) |
||
| Line 11: | Line 11: | ||
== 진행 예정 내용 == | == 진행 예정 내용 == | ||
* 다소 중요하다고 생각된 내용은 | * 다소 중요하다고 생각된 내용은 <font color="#9933ff"><b>보라색 볼드(굵게)</b></font> 처리하였습니다. | ||
* #15. BCL Part.3 | * #15. BCL Part.3 | ||
** | ** <font color="#9933ff"><b>FileStream, FileMode</b></font> | ||
** | ** <font color="#9933ff"><b>File 클래스와 FileInfo 클래스</b></font> | ||
** | ** <font color="#9933ff"><b>Directory 클래스와 DirectoryInfo 클래스</b></font> | ||
** | ** <font color="#9933ff"><b>Path 타입</b></font> | ||
* #16. BCL Part.4 | * #16. BCL Part.4 | ||
** | ** <font color="#9933ff"><b>Thread</b></font> | ||
** | ** <font color="#9933ff"><b>Thread 상태 제어</b></font> | ||
** | ** <font color="#9933ff"><b>전경 스레드와 배경 스레드</b></font> | ||
** | ** <font color="#9933ff"><b>Thread 동기화 처리 - Monitor를 통한 동기화</b></font> | ||
** | ** <font color="#9933ff"><b>Thread 동기화 처리 - lock 예약어를 통한 동기화</b></font> | ||
** | ** <font color="#9933ff"><b>원자적 연산과 Interlocked 타입</b></font> | ||
** | ** <font color="#9933ff"><b>ThreadPool</b></font> | ||
** | ** <font color="#9933ff"><b>Thread 동기화 처리 - EventWaitHandle을 통한 동기화</b></font> | ||
** | ** <font color="#9933ff"><b>동기 호출과 비동기 호출</b></font> | ||
* #17. C# 5.0으로 올라서기 | * #17. C# 5.0으로 올라서기 | ||
** 호출자 정보(Caller Information) | ** 호출자 정보(Caller Information) | ||
** | ** <font color="#9933ff"><b>async/await 예약어</b></font> | ||
** | ** <font color="#9933ff"><b>Task 타입 (C# 4.0)</b></font> | ||
** Task와 ThreadPool의 QueueUserWorkItem (C# 4.0) | ** Task와 ThreadPool의 QueueUserWorkItem (C# 4.0) | ||
** | ** <font color="#9933ff"><b>await와 병렬 처리</b></font> | ||
** | ** <font color="#9933ff"><b>catch 블록에서의 await (C# 6.0)</b></font> | ||
== 진행 == | == 진행 == | ||
Latest revision as of 23:56, 26 March 2026
개요
- 종료!
참가자
진행 시간
- 14시 30분 ~ 17시
진행 예정 내용
- 다소 중요하다고 생각된 내용은 보라색 볼드(굵게) 처리하였습니다.
- #15. BCL Part.3
- FileStream, FileMode
- File 클래스와 FileInfo 클래스
- Directory 클래스와 DirectoryInfo 클래스
- Path 타입
- #16. BCL Part.4
- Thread
- Thread 상태 제어
- 전경 스레드와 배경 스레드
- Thread 동기화 처리 - Monitor를 통한 동기화
- Thread 동기화 처리 - lock 예약어를 통한 동기화
- 원자적 연산과 Interlocked 타입
- ThreadPool
- Thread 동기화 처리 - EventWaitHandle을 통한 동기화
- 동기 호출과 비동기 호출
- #17. C# 5.0으로 올라서기
- 호출자 정보(Caller Information)
- async/await 예약어
- Task 타입 (C# 4.0)
- Task와 ThreadPool의 QueueUserWorkItem (C# 4.0)
- await와 병렬 처리
- catch 블록에서의 await (C# 6.0)
진행
내용 요약
15. BCL Part.3
- 파일에 대해 입출력 작업을 하려면 파일 스트림을 열어야 한다.
- FileMode, FileShare, FileAccess 등을 통해 파일 스트림에 파일의 개방 방식, 수정 방식, 공유 방식등을 제어할 수 있다.
- File 정적 메서드와 FileInfo 인스턴스 메서드를 사용하면 대부분의 파일 I/O 작업을 손쉽게 처리할 수 있다.
- Directory 정적 메서드와 DirectoryInfo 인스턴스 메서드를 사용하면 대부분의 폴더 I/O 작업을 손쉽게 처리할 수 있다.
- Path 정적 메서드를 통해 파일/폴더 경로와 그 이름에 대한 작업을 손쉽게 처리할 수 있다.
16. BCL Part.4
- 스레드(Thread)는 CPU의 명령어를 수행하는 스케줄링 단위를 말한다.
- Join, Sleep 등의 메서드를 통해 스레드의 상태를 제어할 수 있다.
- 전경 스레드(Foreground Thread)는 프로그램 종료에 영향을 주지만, 배경 스레드(Background Thread)는 프로그램 종료에 영향을 미치지 않는다.
- Monitor 클래스를 통해 다중 스레드에 대한 동기화 처리를 지원할 수 있다.
- Monitor 클래스 사용 패턴을 단순화시킨 lock 예약어를 통해 동기화 처리를 지원할 수 있다.
- 더 이상 나뉠 수 없는 원자적 연산에 대해서는 Interlocked 타입을 통해 동기화 처리를 지원할 수 있다.
- ThreadPool은 재사용 가능한 스레드들의 집합을 얘기하며, 이 Pool을 통해 다중 스레드를 처리할 수 있다.
- EventWaitHandle을 통해서도 스레드에 대한 동기화 처리를 지원할 수 있다.
- 동기 호출은 호출 시 제어가 차단되지만, 비동기 호출은 제어가 차단되지 않고 별도의 ThreadPool에서 스레드를 얻어와서 실행한다.
17. C# 5.0으로 올라서기
- 호출자 정보를 사용하면 파일명, 호출 메서드 이름, 라인 번호를 얻어낼 수 있다.
- async/await 예약어를 통해 동기 호출과 비슷하지만 비동기 호출인 코드를 작성할 수 있다.
- Task 타입을 사용하여 ThreadPool에서 스레드를 얻어와 실행하는 코드를 작성할 수 있다.
- Task 타입은 QueueUserWorkItem과 달리 반환된 결과값을 사용할 수 있다는 중요한 차이점이 있다.
- C# 6.0에서는 catch 블록에서도 await 키워드를 적용시킬 수 있다.