C# 자료 정리 - SerialPort. Event, Thread Synchronization, Debug Trace, TextBox Carrot Control, TimSpan, Method Invoker, Invoke
출처 : http://imjuni.tistory.com/424
1. SerialPort
from: http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx
이전 글에서 사용해본 적이 있는 SerialPort Class. 임베디드 환경에서 RS232는 디버그 용도로 매우 많이 사용된다. PC 상에서 임베디드 단말과 RS232로 통신하는 프로그램을 개발할 때 유용하다.
2. C# Event
from: http://msdn.microsoft.com/en-us/library/w369ty8x.aspx
Event Trigger는 잘알고 있지만 C#에서 어떤 Syntax를 가지는지 찾아본 것.
3. C# Thread Synchronization
from: http://support.microsoft.com/kb/815788/ko
Thread Synchronization을 위해서 Mutex, Semaphore 등이 사용된다. 역시 이러한 것이 C#에서 어떠한 Syntax를 가지는지 찾아본 것.
4. C# Debug Trace
from: http://support.microsoft.com/kb/815788/ko
TRACE는 가끔 IDE 환경에서 잡기 어려운 버그를 잡을 수 있게 해준다. 예를 들면 Thread Synchronization 같은 문제는 TRACE로 잡는 것이 편할 때가 있다. 이 때 사용하려고 찾아본 것.
5. C# TextBox Carrot Control
from: http://msdn.microsoft.com/ko-kr/library/ms752349.aspx
아직 못찾았다. Auto Scrolling이 일어나는 RichEdit에 클릭하면 Carrot위치 때문에 화면이 중구난방으로 왔다 갔다 하는것. 직접 Scrolling 위치를 제어하는 것을 찾아봐야 겠다.
6. C# TimSpan
from: http://msdn.microsoft.com/ko-kr/library/system.timespan%28v=vs.95%29.aspx
DateTime Class를 연산하면 TimeSpan이 튀어나오는데 아직도 혼동스러울 때가 있다. MSDN에서는 DateTime이 시간을 Point, 즉 점으로 나타낸 것이라면 TimeSpan은 Line, 즉 점과 점 사이 거리를 나타내는 것이라고 설명되어 있다. 그렇게 보니 아주 합리적이고 이해도 잘된다.
6. C# Method Invoker
from: http://msdn.microsoft.com/en-us/library/system.windows.forms.methodinvoker.aspx
WinForm 어플리케이션은 기본적으로 Main Thread에서 동작하는데, Main Thread를 제외한 다른 Thread에서 Main Thread에 속한 Method를 Call하려면 오류가 발생한다. 이 때 delegate를 사용하여 그 것을 방지할 수 있다. 하지만 일반적으로 이런 경우에는 WinForm에서는 delegate이 global variable이 되기 때문에 좀 문제가 될 수 있는데 이 때 MethodInvoker를 사용하면 쉽게 해결할 수 있다. 하지만 제약사항이 꽤 있어서 사용할 여지가 좀 있는가...하는 생각이 든다.
7. C# Invoke
from:
http://xmlangel2.blogspot.com/2009/05/c-%EC%9C%88%ED%8F%BC%EA%B8%B0%EB%B0%98-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9D%84-%ED%95%A0%EB%95%8C-invoke-%EC%9D%B4%EC%81%98%EA%B2%8C%EC%93%B0%EA%B8%B0.html
http://uzysjung.springnote.com/pages/5362913
Invoke는 간단하게 말하자면 IPC가 발생할 때 사용되며, IPC 주체가 일반적으로 생각하는 Data가 아닌 Call이 된다. Call을 사용하는 IPC를 하기 위해서 반드시 사용해야 하는 것이 Invoke이다. 처음에는 접근하기 어려웠는데 계속 써보고 문서를 찾아보고 하니 알겠다.
'Language > C#' 카테고리의 다른 글
[LINQ] subset 부분 집합 구하기 (6) | 2015.04.28 |
---|---|
[LINQ] 여러 인풋을 하나의 시퀀스로 Join 하기 (6) | 2015.04.28 |
C# Thread 를 이용한 코드에서 DEBUG 하기. winForm 의 화면제어시 오류피하기 [출처] C# Thread 를 이용한 코드에서 DEBUG 하기. winForm 의 화면제어시 오류피하기|작성자 바람 (6) | 2015.04.28 |
New Features in C# 6 (6) | 2015.04.28 |
[C#] 특정길이까지 숫자값 앞에 0으로 채워주는 간단한 방법 (2) | 2015.04.17 |