본문 바로가기

Hoons.Net/C#

캠퍼스 시삽 과제 6-1) 쓰레드의 개념과 닷넷에서 지원하는 쓰레드 쓰레드란? 쓰레드는 잘 쓰면 득이지만 잘 못쓰면 해가 된다는 말을 많이 들었다. 도스 시절에는 명령어를 열심히 치면 그 한 줄의 명령어를 실행했다.그리고 사용자는 그 실행이 끝날 때 까지 기다려야 했다. 하지만 GUI환경에서는 사람들이 음악을 들으며 인터넷을 하고메신져로 대화를 한다.하물며 인터넷창도 여러개를 띄우고 작업을 하고문서작성시에는 인터넷창과 워드창을 동시에 띄워서 작업한다.이런 환경을 흔히 '멀티OS'라고 부른다. 이런 다중작업을 위해서 필요한 것이 쓰레드이다.CPU의 1코어당 한가지의 일을 할 수 있지만 쓰레드를 이용하며 두가지 이상의 일을 번갈아 가며 처리할 수 있고기술의 발전으로 다중코어를 사용하는 지금코어별로 쓰레드를 할당 할 수도 있다. OS는 프로그램 하나당 하나의 프로세스이다.그리.. 더보기
캠퍼스 시삽 과제 5-1) Delegate Delegate 를 MSDN에서 찾아보면 '명명된 메서드나 무명 메서드를 캡슐화할 때 사용할 수 있는 참조 형식을 선언하는 데 사용됩니다.' 라고 정의되어 있다. 사용하면서 느끼는 점은 Delegate의 기본베이스는 C++의 함수포인터인 것 같다. 하지만 C#은 C++보다 좀더 고급언어이기때문에 조금더 보안하고 다듬어서 안정성을 강화하고 기능을 추가한 키워드라고 생각한다. MSDN의 샘플을 보면 쉽게 이해된다. using System; //Delegate_Test 이름의 델리게이트 정의 delegate void Delegate_Test(string message); namespace ConsoleApplication1 { class Program { //콘솔창에 파라미터로 받은 문자열을 출력하는 함수 선.. 더보기
캠퍼스 시삽 과제 4-1) Stream Stream은 사전적으로 흐르다, 시내, 개울 등의 뜻이다..Net에서는 정보를 저장 또는 출력하는, 즉 1차원적인 데이터의 흐름을 의미한다. 스트림 자체는 논리적이기 떄문에 어떠한 물리장치에도 간섭받지 않고키보드나 마우스, 모니터, 파일등 모든 장치에 대해 제어가 가능하다. Stream은 입력스트림과 출력스트림으로 구분이 가능하고또한 바이트스트림과 문자스트림으로도 구분이 가능하다. - 입력스트립과 출력스트림 스트림은 기본적으로 입력스트림과 출력스트림으로 나눌 수 있으며입력스트림은 Stream, TextReader, BinaryReader 클래스 등으로 나눌 수 있다.출력 스트림은 Stream, TextWriter, BinaryWriter 클래스 등이 있다.*Stream클래스는 입, 출력이 동시에 가능한.. 더보기
캠퍼스 시삽 과제 3-2) 컬렉션 점찍어 출력하기(Parallel Ver.) using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections;using System.Threading.Tasks; namespace ConsoleApplication3{ class Program { static void Main(string[] args) { int time = 0, time2=0; StringBuilder str = new StringBuilder(); ArrayList list = new ArrayList(); for (int i = 0; i < 100000; i++) { list.Add("이재민" + i); } time = Environment.TickC.. 더보기
캠퍼스 시삽 과제 3-2) 컬렉션 점찍어 출력하기(While Ver.) using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections; namespace ConsoleApplication3{ class Program { static void Main(string[] args) { int count=0; StringBuilder str = new StringBuilder(); ArrayList list = new ArrayList(); list.Add("윤병결"); list.Add("조현석"); list.Add("이재민"); list.Add("김은진"); list.Add("성연지"); list.Add("박기완"); while(true) { str.A.. 더보기
캠퍼스 시삽 과제 3-2) 컬렉션 점찍어 출력하기(StringBuilder Ver.) 문자열 변수로 저장 후 출력하라고 하셔서 수정하여 올립니다. ^~^ 더보기
캠퍼스 시삽 과제 3-2) 컬렉션 점찍어 출력하기 더보기
캠퍼스 시삽 과제 3-1) String String 우리가 C언어를 처음 배울 떄 문자열을 사용하기 위해 Char형식을 배열로 선언해서 사용했었다. char str[] = "Hello World!!"; 이 것이 결국 String의 모태?라 할 수 있다. String은 이 배열을 매번 선언하는 것의 번거로움읗 없애고자 만들어진 클래스인 것이다. 결국 String클래스는 문자열이라는 것을 추상화 한 자료형이다. 우리가 보통 String을 사용 할 때 다른 변수처럼 string str = "Hello World!!"; 라고 사용을 했다. 이 string은 String클래스의 별칭으로써 변수처럼도 사용이 가능하지만 기본이 클래스이기 때문에 String str = new String(new char[]{'가','나','다'}); 라는 식으로도 생성이 .. 더보기
캠퍼스 시삽 과제 2-3) 정렬기능 배열이나 컬렉션에 랜덤하게 수를 집어넣고 오름차순 또는 내림차순 정렬을 하는 기능 더보기
캠퍼스 시삽 과제 2-2) 로또 추출기 6개의 랜덤한 중복되지 않는 수를 뽑아내는 로또 추출기 더보기