본문 바로가기

IT/C#, NHibernate

C# _ 멀티스레드,ManualResetEvent,동기화 를 시켜보자 멀티 스레드에서 가장 중요한 동기화 시키는 법에 대해 알아보겠습니다. 그중 MunualResetEvent 클래스를 사용해서 하는법을 알아보겠습니다. ManualResetEvent는 서로 Signal(신호)를 통해 스레드를 작동시키는 것입니다. 그럼 필수적으로 필요한 매소드에 대해 알아보겠습니다. ManualResetEvent의 Set() = 계속 진행되도록 신호를 받는것 ManualResetEvent의 Reset() = 스레드가 차단되어 이벤트 신호가 더이상없음을 설정하는 ManualResetEvent의 WaitOne() = 신호의 상태를 확인합니다. 즉 Set()으로 되어있으면 true Reset()으로 되어있으면 false 반환합니다. 이라고 생각하시면 됩니다. 소스를 보면서 설명해 보겠습니다.기본 .. 더보기
C# _ 멀티스레드 생성법 과 스레드 시작메소드 [start()] C# 멀티스레드 생성법에 대해서 공부를 해보겠습니다. 가장먼저 using System.Threading; 을 추가를해줘야 합니다. 그래야 스레드를 쓸 수 있습니다. /**** MyThread_1 과 MyThread_2 는 제가 만듣 객체 입니다. 스래드 생성법 입니다. MyThread_1 mth1 = new MyThread_1(); Thread ts1 = new ThreadStart(mth1.limit_count); Thread th1 = new Thread(ts1); 여기서 중요한 것은 스레드를 적용할 함수가 반환형 :: void 파라미터가 없어야 합니다. 즉 밑에 그림 에 보면 함수가 public void limit_count() 으로 나와있습니다. (이 내용이 책에 없어서 많이 힘들었네요 따로 만드.. 더보기
C# _ 스레드(쓰레드,Thread) _1 스레드란? 스레드는 무엇일까요? 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다. (_ 위키피디아 발췌) C# 및 프로그래밍 입장에서 보면 어떤 프로그램에서 실행되는 함수를 말한다고 할수 있습니다. 또한 멀티스레드는 한프로그램에서 두개 이상의 함수가 동시에 불리는것(실행)되는것 이라고 할수 있습니다. *스레드 생성했을 때 주의 할 점 1. Priority 2. Synchronization 입니다. 쉽게 말해 1.priority 우선권 입니다. 예를 들어 A() 함수와 B()라는 .. 더보기
C# _ List<T> = new List<T> List에 대해서 알아 보겟습니다. 이것은 예제로 보는게 가장 쉽게 이해 할수 있다고 생각되어 소스먼조 보겟습니다. 밑에 그림은 http://msdn.microsoft.com 의 List 예제 소스 입니다. 밑 줄에서 볼 수 있듯이 List dinosaurs = new List(); dinosaurs.Add("abcd"); 라고 적혀있습니다. 즉 List의 변수 명(?) 이 dinosaurs이고 이것은 으로 이뤄져있다 라고 이해 할수 있습니다. 더보기
C#_ ArrayList _ 모든데이터 출력하기(IEnumerator)[ MoveNext() ] ArrayList의 모든 데이터를 출력하는 방법을 알아보겠습니다. 먼저 천제 소스를 보시죠..이전 글에 몇줄을 추가한것입니다. 동작하는 원리는 IEnumerator 의 인터페이스를 구현을 통한것입니다. 이 전 글에서 IEnumerator myeum = mylist.GetEnumerator()부터 새로 추가한 소스입니다. 밑에 그림을 보면 MoveNext()함수 의 반환형을 보듯이 bool로 되어있습니다. 즉 있으면 true 없으면 false 를 반환한다는뜻이 되겟죠? 최종 결과물 입니다. 제가 적은 print_result()함수의 노가다 처럼 안해도 되겟죠?? 더보기
C#_ ArrayList 클래스[Insert()] I지난 글에 이어서 Insert()함수에 대해 알아보겠습니다. Insert 함수는 뜻 그래도 넣는다는 것입니다. 그림에서 보듯이 mylist.Insert(2,"insert"); 을 써넣었습니다. 결과가 어떻게 나왔을까요?? Form1 창에서 보듯이 2번째 단락에 보면 mylist[1] = 1 mylist[2] = insert mylist[3] = 2 ... insert가 2번째에 삽입됨으로 2번째 뒷 items들은 모두 뒤로 한칸식 밀리게 된것을 확인 할수 있습니다. 더보기
C#_ ArrayList 클래스[Add(),Count()] ArrayList 는 IList 의 인터페이스를 구현하는 클래스중 하나입니다. Arraylist 는 삽입 순서로 삽인되며 중간 삽입,삭제가 가능합니다. 먼저. ArrayList 클래스를 만들고 삽입하는법을 배워보겠습니다. 인덱스로 출력하는 법을 배워보겟습니다. using System.Collections;를 포함시킨뒤 ArrayList mylist = new ArrayList() 과정을 통해 객체를 만들었습니다. Add()함수는 List에 내용을 추가하는 함수이고, Coun()함수는 List의 내용물이 몇개인지 알려주는 함수입니다. 객채[index]를 사용하면, index의 해당 아이템,내용물이 출력됩니다. (ex mylist[0] = hi) 더보기
C# _region,endregion 그림에서 보듯이 C#에서 region이란걸 쓰면 소스 코드 정리 할때 편합니다. #region #endregion 종류별로 이름을 붙여서 놔두면 봐도 소스를 이해하기 편합니다. 더보기
C# _StreamReader,StreamWriter , 파일읽기,파일쓰기(1) clss System.IO.StreamReader 의 도움말을 보여지듯이 특정 인코딩의 바이트 스트림에서 문자를 읽는다 라고 적혀있습니다. reader = new StreamReader("Naver.txt"); 보듯이 파일이름이나 경로를 넣어주면 되는데 파일이름을 넣었을 떄는 \Debug 폴더안에 넣으주면 됩니다. 주요 함수 하나만 알아 보겠습니다 . * ReadLine에 대한 설명 * 현재 스트림에서 한 줄의 문자를 읽고 데이터를 문자열로 반환합니다. 줄은 다음에 줄 바꿈("\n")이 오는 문자의 시퀀스 또는 바로 다음에 줄 바꿈("\r\n")이 오는 캐리지 리턴으로 정의됩니다 입력 스트림의 끝에 도달한 경우 Null 값을 반환합니다. 더보기
C# _StreamReader,StreamWriter , 파일읽기,파일쓰기(2) 이번에는 StreamWriter 에 대해 알아보겠습니다. StreamWriter 생성법과 파일에 쓰는 법을 알아보겠습니다. 주황색으로 쓴 것을 중점으로 봅시다. using System.IO ; new StreamWriter("StreamWriter.txt") - StreamWriter.txt란 파일이 생김니다. 따로 경로를 지정하지 않으면 생기는 장소는 프로젝트 생성 장소 의 bin 파일의 Debug 라는 폴더 안에 생깁니다. writer .WriterLine(str_temp); 제가 쓴 함수는 WriterLine 메서드(String)을 쓴것입니다. 그림에 나와있는이 변수에는 자료형에 맞는걸을 만들어 써주면 됩니다. writer.Close(); 스트림을 종료하는것입니다. 종료하지않으면 파일에 제대로 입력.. 더보기

반응형