본문 바로가기

Writer/WarmingUp Code

C# Thread 스레드

반응형

///////////////////////// 멀티 스레드 ///////////////////////////


using System;
using System.Threading;

class threadtest
{
 static void ThreadProc()
 {
  for (int i = 0; i < 100; i++)
  {
   Console.WriteLine(i);
   Thread.Sleep(500);
  }
  Console.WriteLine("작업스레드종료");
 }
 static void Main()
 {
  Thread T = new Thread(new ThreadStart(ThreadProc));
  T.Start();
  for (;;)
   {
    ConsoleKeyInfo cki;
    cki = Console.ReadKey();
    if(cki.Key == ConsoleKey.A)
    {
     Console.Beep();
    }
    if(cki.Key == ConsoleKey.B)
    {
     T.Abort();
     break;
     
    }
   
   }
  Console.WriteLine("주 스레드 종료");
 }
}




/////////////////////////////////     스레드 Thread lock ////////////////////////
using System;
using System.Threading;

class Site
{
 public string name;
 public Site(string aname)
 {
  this.name = aname;
 }
}
class test
{
 private static Site site = new Site("www.winapi.co.kr");
 static void ThreadProc()
 {
  for (int i = 0; i < 100; i++)
  {
   lock (site)
   {
    Console.SetCursorPosition(0, 0);
    Console.WriteLine("{0}에서{1}다운로드중", site.name, i);
   }
   Thread.Sleep(100); 
  }
 }

 static void DoSomething()
 {
  string old = site.name;
  site.name = "www.loseapi.co.kr";
  for (int i = 0; i < 100; i++)
  {
   Console.SetCursorPosition(0,1);
   Console.WriteLine("{0}{1}",site.name , i);
   Thread.Sleep(150);
  }
  site.name = old;
 }

 
 static void Main()
 {
  Thread T = new Thread(new ThreadStart(ThreadProc));
  T.Start();
  Thread.Sleep(2000);
  lock(site)
  {
   DoSomething();
  }

 }
}

'Writer > WarmingUp Code' 카테고리의 다른 글

워밍업 코드 클래스  (0) 2008.12.23
C# ADO.NET 접속 Console접속 SELECT ,UPDATE  (0) 2008.11.12
ADO.NET 접속  (0) 2008.10.29
메모장 만들기(MDI)포함  (0) 2008.10.29
C# 객체생성과제  (0) 2008.10.20
C# 과제  (0) 2008.10.17
abstract interface  (0) 2008.10.15
델리게이트 이벤트 소스 노가다 2  (0) 2008.10.14