예전에 회사에서 만들었던 C# 비동기 테스트 소스입니다. cmd.exe 직접 제어하여 콘솔에 명령어 날리고 응답 값을 바당 뿌려주는 소스인데요. 아래에도 소개하겠지만, static async Task DoSignAsync() 함수를 꾸며서 원하는 대로 수정하여 사용할 수 있습니다. 큰 흐름상, C# ProcessStartInfo 객체를 이용해 프로세스를 제어하고, async DoAction() 함수로 비동기 함수 호출, 종료 등 큰 흐름을 잡습니다. 세부적인 task 동작은 위에서 언급한 DoSignAsync 함수에서 담당합니다. ◆ 전체 C# 소스 코드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464..
C# Invoke로 크로스 스레드 해결, 간략한 소스 응용 [C#강좌] C# Invoke는 이럴 때 써야 합니다. 아래 에러 메시지 보시죠. InvalidOperationException이(가) 처리되지 않았습니다. 또는, 이럴 때도 C# Invoke를 써야 하죠. 처리되지 않은 'System.InvalidOperationException' 형식의 예외가 System.Windows.Forms.dll에서 발생했습니다. 추가 정보: 크로스 스레드 작업이 잘못되었습니다. 'tb_received' 컨트롤이 자신이 만들어진 스레드가 아닌 스레드에서 액세스 되었습니다. 위 에러가 발생했을 때 해결하는 방법은 3가지였습니다. (C# Invoke를 사용하지 않았을 때) 1. 델리게이트를 선언하고 그곳에 맞는 콜백 함수..
C# TASK 7가지 사용법, C# 스레드는 이제 그만 C# 스레드 사용보단 C# task로 비동기 처리하는 습관을 들여야합니다. 스레드 구현에 드는 시간과 비용보단 닷넷프레임워크에서 제공하는 task 사용이 합리적입니다. 먼저, using 문을 추가합니다. 1using System.Threading.Tasks;cs 1. 직접 호출 12Task.Factory.StartNew(() => { Console.WriteLine("Hello Task library!"); });cs 2. Action 사용 12Task task = new Task(new Action(PrintMessage));task.Start();Colored by Color Scriptercs PrintMessage 함수는 아래와 같습니다. 1..
C# 비동기 Async, 소켓 서버, 함수 소스 (Socket network) C# 비동기 소켓 서버를 포함한 비동기 함수, 비동기 서버, 비동기 쓰기, 비동기 읽기 등의 소스입니다. 전체 소스(Visualstudio)와 링크는 아래를 참조하시고, 전체 소스는 본문을 참조하세요. 소스 : Download Asynchronator (Visual Studio Test Project)원문 : Chapter 23: Asynchronous Methods 1. Blocking Socker Server 1234567891011121314151617181920212223242526272829303132333435363738using System;using System.Threading;using System.Net;u..