... | ... | @@ -334,13 +334,13 @@ thread가 생성되면 오랜 시간동안 생성돼 있는 유형. |
|
|
* **1회성의 임시 실행**
|
|
|
특정 연산만을 수행하고 바로 종료하는 유형.
|
|
|
|
|
|
2번 유형 때문에 매번 thread를 생성하는 것은 불편하다. 임시적인 목적으로 언제든 원하는 때에 thread를 사용할 수 있다면 좋을 것이다.
|
|
|
2번 유형 때문에 매번 thread를 생성하는 것은 불편하다. 임시적인 목적으로 언제든 원하는 때에 thread를 사용할 수 있다면 좋을 것이다.
|
|
|
<br>
|
|
|
**5. CLR thread pool**
|
|
|
**System.Threading.ThreadPool :** thread pool은 background task를 수행하는 thread의 집합이다. 필요할 때마다 thread를 꺼내 쓰고 필요없어지면 다시 pool에 thread가 반환된다.
|
|
|
<br>
|
|
|
**6. System.Threading.EventWaitHandel**
|
|
|
thread로 하여금 이벤트를 기다리게 만들 수 있고, 다른 thread에서 원하는 이벤트를 발생시키는 시나리오에 적합하다. EventWaitHandel 객체를 응용하면 ThreadPool의 단점을 보완할 수 있다. EventWaitHandle.Set method를호출해 Signal 상태로 전환된 이벤트가 Non-Signal 상태로 자동으로 전환되느냐에 따라 ManualResetEvent, AutoResetEvent로 나뉜다. ManualResetEvent는 여러 개의 thread가 동시에 여러 개의 작업을 처리할 때 유용하다.
|
|
|
thread로 하여금 이벤트를 기다리게 만들 수 있고, 다른 thread에서 원하는 이벤트를 발생시키는 시나리오에 적합하다. EventWaitHandel 객체를 응용하면 ThreadPool의 단점을 보완할 수 있다. EventWaitHandle.Set method를호출해 Signal 상태로 전환된 이벤트가 Non-Signal 상태로 자동으로 전환되느냐에 따라 ManualResetEvent, AutoResetEvent로 나뉜다. ManualResetEvent는 여러 개의 thread가 동시에 여러 개의 작업을 처리할 때 유용하다.
|
|
|
|
|
|
``` cs
|
|
|
using System;
|
... | ... | @@ -386,7 +386,7 @@ _ _ _ |
|
|
|
|
|
* **System.IO.Directory**
|
|
|
|
|
|
| method | 설명 |
|
|
|
| method | 설명 |
|
|
|
|--------|--------|
|
|
|
| CreateDirectory(String) | directory를 생성한다. 이미 directory가 존재한다면 아무런 작업도 하지 않는다 |
|
|
|
| Delete(String) | 지정된 경로에서 빈 directory만 삭제, subdirectory가 존재할 경우 IOException발생 |
|
... | ... | @@ -400,7 +400,7 @@ _ _ _ |
|
|
|
|
|
* **System.IO.Path**
|
|
|
|
|
|
| method | 설명 |
|
|
|
| method | 설명 |
|
|
|
|--------|--------|
|
|
|
| ChangeExtension(String, String) | 첫 번째 인자로 전달된 경로에서 확장자 부분을 두 번재 인자로 전달된 문자열로 바꿔준다 |
|
|
|
| Combine(String, String) | 전달된 문자열 인자를 모두 합쳐서 하나의 경로로 만든다 |
|
... | ... | @@ -419,7 +419,8 @@ data binding을 할 때, ListBox, ListView 또는 TreeView 등의 ItemsControl |
|
|
WPF에서는 INotifyCollectionChanged interface를 구현하는 data collection에 대한 기본 제공 구현인 ObservableCollection 클래스를 제공한다. ObservableCollection은 `IList<T>`를 상속받았고 INotifyCollectionChanged interface를 구현하고 있다.
|
|
|
|
|
|
* * *
|
|
|
### ==Note & Tips==
|
|
|
### Note & Tips
|
|
|
|
|
|
##### <a name = "first">**#A garbage collector 동작 방식**
|
|
|
|
|
|
``` cs
|
... | ... | @@ -499,7 +500,7 @@ using (FileLogger log = new FileLogger("sample.log")) |
|
|
}
|
|
|
```
|
|
|
* * *
|
|
|
##### <a name = "third">**#C String 대표 method example **
|
|
|
##### <a name = "third">**#C String 대표 method example**
|
|
|
``` cs
|
|
|
// String.Format
|
|
|
string strFormat = String.Format("At {0}, the temperature is {1}°C.", DateTime.Now, 20.4);
|
... | ... | |