async
-
[rust] tokio 비동기 동시 처리 기본 예시 코드Rust 2024. 11. 24. 18:06
tokio를 통한 async 작업을 동시 실행. dotnet의 Task.WaitAll() 과 유사입력받은 초(sec)만큼 시간이 출력되는 작업 print_now를 각각 f1, f2 작업을 만들어 동시 실행 처리. tokio::join으로 들어온 작업 중 가장 늦게 끝난 작업 기준으로 종료 [main.rs]use tokio;use time::{OffsetDateTime}; // 포맷팅된 시간 글자를 표기하기위한 라이브러리#[tokio::main]async fn main() { let f1 = print_now(1, 5); let f2 = print_now(2, 10); tokio::join!(f1, f2); // f1, f2}// 1초당 현재시간(UTC) 표기async fn print_no..
-
[.NET] 비동기(async, await) 방식의 메소드를 동기 방식으로 안전하게 호출하기.NET/개념 및 유용한 팁 2023. 1. 4. 23:02
가장 좋은 것은 대세에 따라 비동기 방식으로 개발하는게 좋지만, 현 회사에서 ASP.NET Core를 동기방식으로 개발해놔버린지라 좋은 도구를 개같이 쓰거나, 옛날 라이브러리의 방식을 뒤져서 쓰거나 하는 어려움이 따르고 있다. 왠만하면 참겠으나, HttpClient 놔두고 WebRequest 써야 되는 상황이 나오니 머리에 꼭지 돌 지경이다. 하여 동기방식으로 안전하게 호출하는 방식을 찾아보았다. .NET 7.0 이하 버전 기준, 비동기 함수를 .Result 프로퍼티를 통해 직접적으로 결과를 받게끔 개발하게 되면 랜덤한 상황에 Thread 교착상태가 발생하여 갑자기 동작이 멈추는 이슈가 발생할 수 있다. // 이와 같은 호출은 큰 위험이 따른다. var res = _factory.CreateClient(..
-
[.NET] ASP.NET Core 및 비동기(async, await) 프로그래밍 개발에 도움이 되는 설명 사이트.NET/개념 및 유용한 팁 2022. 12. 26. 23:01
async, await 를 통한 비동기프로그래밍은 .NET Framework 4.5부터 지원되어왔으며, Core로 넘어오면서 이제는 비동기 형식으로 개발하는게 "정상적인" 개발이라 해야할만큼 한국 빼곤 대중화 되어있다. 특히나 ASP.NET Core는 비동기 프로그래밍이 Default라 할만큼 동기식 개발과 성능차이가 나는데, 잘못쓰면 서비스가 죽을 수도 있는 문제가 있다. 일반적으로 비동기 로직에 동기방식을 섞어쓴다던가 하지만 않으면 된다고만 알았는데 보다 잘 정리된 문서가 있어 소개한다. davidfowl/AspNetCoreDiagnosticScenarios: This repository has examples of broken patterns in ASP.NET Core applications (g..
-
[Async/Await] Invoke보다 간편하게 UI 접근하기.NET/개념 및 유용한 팁 2019. 12. 19. 23:46
비동기 프로그래밍(async, await)에 대한 올바른 사용법에 대한 문서가 있습니다. https://ddochea.tistory.com/212 를 참조해주세요. 2015년도에 작성했던 포스트 "2015/01/11 - [C#] - [Invoke & BeginInvoke] 1. 다른 Thread 에서 UI 접근하기 (1)" 가 현재까지도 부동의 1순위를 기록하고 있다. 일간 방문자수의 절반이상이 해당 포스트 관련 접근이다. 멱살잡고 캐리중 그런데 좀 찝찝하다. 2012년쯤? 부터 .NET 4.5 및 C# 5.0가 발표되면서 async, await가 소개되었었고, 2015년에 Invoke & BeginInvoke 다루는 나도 참 늦게배운다 생각했는데, 2020년이 오는 중에도 Invoke와 BeginInv..