0329 스레드 복습
2021. 3. 29. 23:58ㆍC#/과제
public class App
{
public App()
{
Thread t;
ThreadStart ts = new ThreadStart(() =>
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Hello");
Thread.Sleep(500);
}
});
//스레드 인스턴스화
t = new Thread(ts);
t.Start();
Thread t2 = new Thread(new ThreadStart(this.Hi));
t2.Start();
}
private void Hi()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Hi");
Thread.Sleep(500);
}
}
}
Try/Catch/Finally
예외 처리를 위해 세 가지 키워드를 쓴다.
try {//예외가 발생할 만한 코드 작성}
catch {//예외가 발생할 때 처리해야 할 코드 블록}
finally {//예외가 발생하거나 정상일 때 모두 처리해야 할 코드 블록}
Abort();
public class App
{
public App()
{
Thread t = new Thread(new ThreadStart(this.TestThread));
t.Start();
Thread.Sleep(5000);
t.Abort("Information from Main.");
}
private void TestThread()
{
while (true)
{
Console.WriteLine("Thread is running...");
Thread.Sleep(1000);
}
}
}//1초의 간격으로 메서드 실행하다가 5초 후 메서드 멈춤
public class App
{
Thread thread1;
Thread thread2;
public App()
{
thread1 = new Thread(() =>
{
Console.WriteLine(thread1.ThreadState);
Thread.Sleep(100);
thread1.Abort();
Thread.Sleep(100);
});
thread1.Name = "Thread1";
Console.WriteLine(thread1.ThreadState);
thread1.Start();
thread2 = new Thread(() =>
{
while (true)
{
Thread.Sleep(5000); //5초가 지난 후 메서드 멈춤
Console.WriteLine(thread1.ThreadState);
thread2.Abort();
}
});
thread2.Start();
}
}
'C# > 과제' 카테고리의 다른 글
0322 delegate 연습 (0) | 2021.03.23 |
---|---|
0317 interface+abstract+stack+queue (0) | 2021.03.17 |
0316 컬랙션 과제 (0) | 2021.03.17 |
0314 클래스와 메서드 (0) | 2021.03.15 |
0311 Class+맴버 변수+메서드 호출 연습 (0) | 2021.03.11 |