본문 바로가기
300x250

c#93

Async / Await 테스트하는 간단 예제 프로그램 입니다. 입력된 URL을 얼마만에 받을 수 있는지 확인하는 예제 입니다. 한 버튼은 동기 방식으로 동작을 하고 다른 한 버튼은 비동기 방식 및 병렬 처리를 하여 동작을 합니다. 동기 방식일 경우에는 시간도 오래 걸리고 버튼 클릭 시 다른 UI들이 반응을 하지 않지만 비동기 방식일 경우에는 시간도 단축되며 버튼 클릭 하여도 다른 UI들의 동작도 가능합니다. 2019. 6. 11.
C# Task 비동기 호출의 병렬 처리 하기 비동기 호출의 병렬 처리 하기 입니다. 아래의 예제는 병렬 처리 하기 전입니다. using System; using System.IO; using System.Threading; using System.Threading.Tasks; namespace TaskSample { class Program { static void Main(string[] args) { int result3 = Method3(); int result5 = Method5(); Console.WriteLine(result3 + result5); } private static int Method3() { Thread.Sleep(3000); // 3초가 걸리는 작업을 대신해서 sleep 처리 return 3; } private stati.. 2019. 6. 9.
C# Task ReadAllText 메서드를 비동기로 처리하기. ReadAllText 메서드를 비동기로 처리하기 입니다. 별도의 스레드를 이용하거나 델리게이트의 BeginInvoke로 처리하여 비동기를 적용하는 예제입니다.(복잡함) using System; using System.IO; namespace TaskSample { class Program { public delegate string ReadAllTextDelegate(string path); static void Main(string[] args) { string filePath = @"C:\windows\system32\drivers\etc\HOSTS"; ReadAllTextDelegate func = File.ReadAllText; func.BeginInvoke(filePath, actionCompl.. 2019. 6. 9.
C# Task await 없이 Task타입을 단독으로 사용하는 예제 await 없이 Task타입을 단독으로 사용하는 예제 입니다. Task 타입은 반환값이 없는 경우 사용되며, Task 타입은 TResult 형식 매개 변수로 지정된 반환값이 있는 경우로 구분됩니다. using System; using System.Threading; using System.Threading.Tasks; namespace TaskSample { class Program { static void Main(string[] args) { ThreadPool.QueueUserWorkItem((obj) => { Console.WriteLine("process workItem"); }, null); Task task1 = new Task(() => { Console.WriteLine("Process .. 2019. 6. 9.
300x250