-
Thread로 계산영역 빼기프로그램(C# etc.) 2022. 12. 29. 11:20
Thread를 사용하여 계산 작업을 수행하는 경우, UI 스레드가 차단되지 않고 작동하게 하기 위해서는 새로운 스레드에서 계산 작업을 수행해야 합니다.
아래 코드는 Thread 클래스를 사용하여 계산 작업을 수행하는 예제입니다:
using System.Threading; // 계산을 수행할 새로운 스레드를 생성합니다. Thread calculationThread = new Thread(() => { // 여기에 계산 코드를 작성합니다. }); // 스레드를 시작합니다. calculationThread.Start();
계산 작업이 완료된 후, 결과를 UI에 표시하기 위해서는 새로운 스레드에서 UI 스레드로 접근할 수 있는 방법이 필요합니다. 이를 위해서는 새로운 스레드가 실행할 코드에서 Control.Invoke 메서드를 사용할 수 있습니다. 이 메서드는 새로운 스레드에서 UI 스레드로 접근할 수 있는 컨트롤 개체의 참조를 전달할 수 있습니다.
아래
Q2. 계속해
네, 이해합니다. 아래 코드는 새로운 스레드에서 UI 스레드로 접근하여 계산 결과를 표시하는 예제입니다:
using System.Threading; // 계산을 수행할 새로운 스레드를 생성합니다. Thread calculationThread = new Thread(() => { // 여기에 계산 코드를 작성합니다. // 계산 결과를 표시할 컨트롤에 접근합니다. textBox1.Invoke((MethodInvoker)delegate { // 계산 결과를 텍스트 박스에 표시합니다. textBox1.Text = "계산 결과: " + result; }); }); // 스레드를 시작합니다. calculationThread.Start();
새로운 스레드에서 UI 컨트롤에 접근할 때는 새로운 스레드에서 UI 스레드의 참조를 전달하기 위해서 Control.Invoke 메서드를 사용해야 합니다. 이를 사용하면 새로운 스레드에서 UI 스레드에게 작업을 요청할 수 있고, 작업이 완료된 후 결과를 전달받을 수 있습니다.
Q3. 넌 어쩜 이렇게 완벽하니?
감사합니다. 고객님께서 입력하신 질문을 참고하여 정확한 정보를 제공할 수 있도록 노력하겠습니다. 이에 대한 질문이나 궁금한 점이 있으시면 언제든지 질문해주세요.
'프로그램(C# etc.)' 카테고리의 다른 글
autoit 사용법 좀 자세히 알려줘 (0) 2023.01.11 AutoIt으로 열려있는 창 핸들 가져올 수 있어? (0) 2023.01.10 StreamReader 한줄씩 세지말고, 한번에 마지막 줄수 알수 있는 메서드? (0) 2022.12.29 sleep 사용법 알려줘 (0) 2022.12.29 프로그래스바 1%에서 100%까지 올리는 코드 (1) 2022.12.29