본문 바로가기

   
Programming/C#

프로젝트 팁

반응형
프로세스 : 내부적으로 무언가 일을 하고 있는것
윈도우 os : 멀티프로세스 지원
하나의 프로세스 안에서 2가지 일을 하고 있으며 이것을 스레드라고 한다.
하나의 프로그램에서 동시에 여러가지 일을 할수 있다. 이것을 멀티 스레드라고 한다.

콘솔환경 : 단일 스레드(한번에 한가지 일밖에 못한다.)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace Test
{
class Class1
{
static void Main(string[] args)
{
//Process -> 프로그램 if (Console.ReadLine() == "1") Process.Start(@"D:\[01]CSharp\TestExe\bin\Debug\TestExe.exe", @"홍길동 하하하 호호호");
//notepad.exe
//mspaint.exe
//wordpad.exe
//explorer.exe
//iexplore.exe
메인함수 인자값으로 전달하여 창을 여러개 만들었을 경우에 한창에서 다른 창을 호출할때 먼가 데이터를 건네야한다면
Process를 사용해야한다.
}
}
}

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleEx

{

    class Class3

    {

        static void Main(string[] args)

        {

            Console.WriteLine("메뉴 입력 : ");

 

            //string input = Console.ReadLine();

 

            //if (input == "1")

            //    Console.WriteLine("첫번째 실행");

            //else if (input == "2")

            //    Console.WriteLine("두번째 실행");

 

            ConsoleKeyInfo key = Console.ReadKey();

 

            if (key.Key == ConsoleKey.NumPad1)

                Console.WriteLine("첫번째");

            else if (key.Key == ConsoleKey.NumPad2)

                Console.WriteLine("두번째");

        }

    }

}

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading;

 

namespace ConsoleEx

{

    //Ex132.cs

    class Ex132

    {

        static void Main(string[] args)

        {

            //Thread(스레드)

            // - 한순간 동시에 실행할 있는 일의 단위

            // - 1개의 스레드안에서는 일의 흐름도 1

 

            //Console.ReadLine();

            //Console.WriteLine("출력");

 

            //병렬로 작업하고 싶은 메서드를 thread 매핑

            Thread thread = new Thread(new ThreadStart(AAA));

            thread.IsBackground = true;

            thread.Start();//AAA호출

 

            //AAA();

            Console.WriteLine("종료");

 

        }

 

        public static void AAA()

        {

            //프로그램 시작시 한개의 선만 가지고 있다

            // 하나의 스레드를 사용하여 중간에서 메서드 호출이 된다.

            //동시에 두개의 일을 할수 있도록 상황을 만들어 줄수 있다.

 

            Console.WriteLine("AAA 호출");

            for (int i = 0; i < 2000000000; i++)

            {

            }

            Console.WriteLine("AAA 호출끝");

        }

    }

}

 

 





using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading;

 

namespace ConsoleEx

{

    //Ex133.cs

    class Ex133

    {

        static void Main(string[] args)

        {

            Console.WriteLine("메인");

 

            //

            //Ani(); //직접호출X

            Thread thread = new Thread(new ThreadStart(Ani));

            thread.IsBackground = true;

            thread.Start();

 

            //string input = Console.ReadLine();

            //Console.WriteLine(input);

            System.Diagnostics.Process.Start("notepad.exe");

 

            Console.ReadLine();

        }

 

        private static void Ani()

        {

            string a = "+";

            for (int i = 0; i < 80; i++)

            {

                Console.Clear();

                Console.WriteLine(a);

                a += "+";

                Thread.Sleep(100);//현재 흐름을 잠시 멈춤

            }

        }

    }

}




반응형