이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 9355|회답: 5

[출처] [실제 전투]. NET/C#은 메서드에 대해 타임아웃 시간을 설정합니다

[링크 복사]
게시됨 2022. 5. 4. 오후 6:59:51 | | | |
요구사항: NET/C# 메서드는 타사 프로그램이 다른 프로그램 작업을 호출하기 위해 System.Diagnostics.Process 코드를 사용해야 합니다지속적인 응답 부재는 항상 기다리는 메서드로 이어질 수 있습니다서드파티 프로그램은 명령어를 입력해야 할 수 있기 때문에, 메서드가 아무리 오래 기다려도 응답하지 않아 프로그램이 정상적으로 계속 실행되지 못하게 됩니다.

메서드의 타임아웃 시간을 설정할 때 몇 가지를 고려해야 합니다:

  • 이 방법은 시간이 만료되었지만 여전히 강제될 수 있습니다
  • 타임아웃이 계속되면 스레드가 채워질까요? 완전한 기억? CPU가 가득 찬 건가요?
  • 메서드가 타임아웃되었고, 메서드 실행을 어떻게 우아하게 종료할 수 있을지


인터넷에서 작업 타임아웃에 관한 코드도 봤는데, 효과는 달성되었지만과제는 계속 실행됩니다이 때문에 자원이 계속 소모되어 프로그램이 크래시될 수 있습니다.

코드는 다음과 같습니다:



주제를 검토하며, 이 글에서는 이 방법의 타임아웃 시간을 설정합니다표적이 되어 모든 방법에 적합하지 않습니다참고로 실제 상황에 맞게 수정해 주세요.

저희 메서드는 System.Diagnostics.Process 호출하여 서드파티 프로그램을 시작하고, 메서드가 타임아웃되면 서드파티 프로그램을 종료하는 프로세스를 종료하려고 합니다! 코드는 다음과 같습니다:


(끝)





이전의:[실제 전투]. NET/C#은 명령줄을 통해 7z 압축 해제를 호출합니다
다음:Nginx는 HTTPS를 사용해 SSL 인증서를 구성합니다
게시됨 2022. 5. 4. 오후 11:10:31 |
배우기 시작해...
게시됨 2022. 10. 10. 오후 1:12:08 |
배우기 시작해...
게시됨 2022. 10. 10. 오후 1:12:50 |
배우세요
게시됨 2022. 10. 10. 오후 1:13:27 |
큰 녀석의 해법을 한번 보자, 히히
 집주인| 게시됨 2022. 10. 10. 오후 5:22:12 |
Task.WaitAsync() API in .NET 6

.NET 6에서는 새로운 WaitAsync 메서드가 추가되어 작업이 완료될 때까지 비동기적으로 기다리는 데 사용되며, 비동기 대기 시 타임아웃 시간이나 취소 토큰인 CancellationToken을 지정할 수 있습니다. 이전 버전에서는 작업 완료를 기다리는 동기식 대기만 있었고, 더 나은 작업 타임아웃이나 취소를 지원하지 않았습니다 TimeoutAfter와 같은 확장 기능은 이러한 확장을 WaitAsync로 대체할 수 있습니다

https://andrewlock.net/a-deep-di ... nc-api-in-dotnet-6/
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com