본문 바로가기

etc/고급강좌(Advanced)29

Using manual reset Event ManualResetEvent oSignalEvent = new ManualResetEvent(false); void SecondThread(){ //DoStuff oSignalEvent.Set(); } void Main(){ //DoStuff //Call second thread System.Threading.Thread oSecondThread = new System.Threading.Thread(SecondThread); oSecondThread.Start(); oSignalEvent.WaitOne(); //This thread will block here until the reset event is sent. oSignalEvent.Reset(); //Do more stuff }Source : h.. 2018. 2. 14.
c# Task.Factory.StartNew with parameter 1) Function private void LoadWebPage(string url) { this.cefSharp.Load(url); } 2) Call Task.Factory.StartNew Task.Factory.StartNew( () => { LoadWebPage(url); }); 2018. 2. 14.
[27] 박싱/언박싱 (Boxing/Unboxing) 우선 C# 특성을 알고 있어야 합니다. 값 형식(Value Type) 자료는 스택(Stack) 메모리 영역참조 형식(Reference Type) 자료는 힙(Heap) 메모리 영역 1)박싱(Boxing)​(Stack->HEAP) 값 형식을 참조 형식으로 변환하는 것을 말하며 스택에 있는 데이터가 힙으로 복사되는 것이다. int = 123;object o = i; //박싱(묵시적 변환) 2)언 박싱(UnBoxing)(HEAP->Stack) 참조 형식을 값 형식으로 변환하는 것을 말하며 힙에 있는 데이터가 스택으로 복사 된다. int i = 123; //값 형식object o = i; //박싱int j = (int) o; //언박싱(명시적 변환) 3)문제점MSDN 에서는 이 과정에 대한 비용을 다음과 같이 설.. 2015. 4. 8.
[26]Dispose/Finalize 차이 Dispose/Finalize 차이는 소멸자 호출 여부이다. .net은 GC(Garbage Collector)에서 메모지(자원)을 관리한다. 개발자가 직접적으로 관리를 원할 경우에 사용하는 것이다. Dispose : USING과 호환되며 주로 File, Database 호출 밎 조작할때 사용된다. Dispose에서는 GC에서 지우기는 하지만 소멸자 호출을 하지 않는다. 차후 GC가 알아서 관리하면서 호출하는 것 같다.Finalize : Destructor를 호출해서 완전하게 메모리에서 지운다. ex)try { ((IDisposable)this).Dispose(); }catch { } GC.SupressFinalize(this); 2015. 4. 8.