RegisterWaitForSingleObject 대 System.Timers

조롱

특정 시간을 기다린 후 실행하려면 코드가 필요합니다. 이것은 내 스레드를 차단하지 않고 비동기식으로 발생해야합니다. 나는 웹을 검색했고이를위한 많은 방법을 찾았다. 두 가지 옵션은 System.Timers를 사용하거나 RegisterWaitForSingleObject 및 ManualResetEvent를 사용하는 것입니다.

나는 그 차이를 알아 내지 못했고, 언제 다른 것을 선호할지 알 수 없었다. Timers 또는 RegisterWaitForSingleObject를 ManualResetEvent와 함께 사용하는 이유와시기를 간략하게 설명해 주시겠습니까?

사이드 노트 : 저는 TAP와 TPL을 좋아하고 일반적으로 다른 패턴보다 선호합니다 (그러나 이것이 System.Timer를 사용하지 않는 유일한 이유입니까?)

가브리엘 루시

타이머

특정 시간 사이에 동일한 코드를 여러 번 실행 하려면 타이머를 사용 합니다.

RegisterWaitForSingleObject

문서에 가장 잘 나와 있습니다.

WaitHandle을 기다리는 대리자를 등록합니다 .

그리고 a WaitHandle는 당신이 원할 때 사용됩니다.

공유 리소스에 대한 독점 액세스를 기다립니다.

공유 리소스를 기다리지 않는 경우 사용 사례에 적합하지 않습니다.

ManualResetEvent

문서에 따르면

신호를 받으면 수동으로 재설정해야하는 스레드 동기화 이벤트를 나타냅니다.

"신호"및 "재설정"은 코드에서 수행해야하는 작업입니다. 스레드 중 하나가 계속할 수 있음을 다른 스레드에 신호해야 할 때 사용됩니다.

사용 사례

당신은 말했다 :

특정 시간을 기다린 후 실행하려면 코드가 필요합니다.

코드를 계속해서 반복 할 필요가없고 공유 리소스를 기다리지 않고 다른 스레드를 기다리지 않는 경우 위의 방법 중 어느 것도 적절하지 않습니다.

계속 진행하기 전에 특정 시간을 기다려야하는 경우 이미 언급했듯이 다음을 사용하십시오 Task.Delay.

await Task.Delay(5000); //wait 5 seconds

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

일치 위임 'System.Timers.ElapsedEventHandler'에 대한 오버로드 없음

분류에서Dev

.NET System.Timers.Timer 대리자 함수에 매개 변수를 전달하는 방법은 무엇입니까?

분류에서Dev

Xamarin Forms error using System.Timers and Sysem.Json

분류에서Dev

System.Timers.Timer 이상한 동작

분류에서Dev

2/4 System.Threading.Timers가 서버에서 시작되지 않지만 로컬에서 제대로 실행됩니다.

분류에서Dev

카운트 다운 타이머 system.timers 문제 xamarin 양식

분류에서Dev

카운트 다운이있는 서버의 C # System.Timers

분류에서Dev

system.timers.timer 자동 재설정 기본값

분류에서Dev

System.Timers.Timer가 꺼지지 않습니다.

분류에서Dev

"새 System.Timers.ElapsedEventHandler (DoStuff)"호출이 작동하지 않았습니다.

분류에서Dev

System.Timers.Timer가 작업 스레드를 중단하면 종료됩니까?

분류에서Dev

System.Timers.Timer () 경과 된 이벤트 집계로 인해 여러 번 실행

분류에서Dev

단일 Windows 서비스에서 두 개의 System.threading.timers 실행

분류에서Dev

System.Timers.Timer가 점차 간격을 늘리고 있습니까?

분류에서Dev

`System.CopyArray` 대`System.Copy`?

분류에서Dev

"this"대신 system.reflection

분류에서Dev

C # System.Timers.Timer 클래스 경과 이벤트 및 타이머 일반주의 사항

분류에서Dev

System.Timers.Timer를 사용하는 스레드의 카운트 다운 타이머

분류에서Dev

System.Timers.Timer를 사용하는 스레드의 카운트 다운 타이머

분류에서Dev

System.Timers.Timer를 사용하는 스레드의 카운트 다운 타이머

분류에서Dev

Stopping Javascript timers

분류에서Dev

Synchronizing a for loop with timers in Swift

분류에서Dev

System.Diagnostics.Trace 대 ILogger

분류에서Dev

System.Web.WebSocket 대 SignalR

분류에서Dev

ManualResetEvent를 사용한 RegisterWaitForSingleObject 정의되지 않은 동작

분류에서Dev

루트 대 관리자 대 SYSTEM

분류에서Dev

Timer가 삭제 된 후 System.Timers.Timer의 Elapsed 이벤트를 발생시키는 예제를 생성 할 수 있습니까?

분류에서Dev

System.Timers.Timer : 시작 간격 후에 경과 된 이벤트를 발생시키는 방법은 무엇입니까?

분류에서Dev

Environment.CurrentDirectory 대 System.IO.Directory.GetCurrentDirectory

Related 관련 기사

  1. 1

    일치 위임 'System.Timers.ElapsedEventHandler'에 대한 오버로드 없음

  2. 2

    .NET System.Timers.Timer 대리자 함수에 매개 변수를 전달하는 방법은 무엇입니까?

  3. 3

    Xamarin Forms error using System.Timers and Sysem.Json

  4. 4

    System.Timers.Timer 이상한 동작

  5. 5

    2/4 System.Threading.Timers가 서버에서 시작되지 않지만 로컬에서 제대로 실행됩니다.

  6. 6

    카운트 다운 타이머 system.timers 문제 xamarin 양식

  7. 7

    카운트 다운이있는 서버의 C # System.Timers

  8. 8

    system.timers.timer 자동 재설정 기본값

  9. 9

    System.Timers.Timer가 꺼지지 않습니다.

  10. 10

    "새 System.Timers.ElapsedEventHandler (DoStuff)"호출이 작동하지 않았습니다.

  11. 11

    System.Timers.Timer가 작업 스레드를 중단하면 종료됩니까?

  12. 12

    System.Timers.Timer () 경과 된 이벤트 집계로 인해 여러 번 실행

  13. 13

    단일 Windows 서비스에서 두 개의 System.threading.timers 실행

  14. 14

    System.Timers.Timer가 점차 간격을 늘리고 있습니까?

  15. 15

    `System.CopyArray` 대`System.Copy`?

  16. 16

    "this"대신 system.reflection

  17. 17

    C # System.Timers.Timer 클래스 경과 이벤트 및 타이머 일반주의 사항

  18. 18

    System.Timers.Timer를 사용하는 스레드의 카운트 다운 타이머

  19. 19

    System.Timers.Timer를 사용하는 스레드의 카운트 다운 타이머

  20. 20

    System.Timers.Timer를 사용하는 스레드의 카운트 다운 타이머

  21. 21

    Stopping Javascript timers

  22. 22

    Synchronizing a for loop with timers in Swift

  23. 23

    System.Diagnostics.Trace 대 ILogger

  24. 24

    System.Web.WebSocket 대 SignalR

  25. 25

    ManualResetEvent를 사용한 RegisterWaitForSingleObject 정의되지 않은 동작

  26. 26

    루트 대 관리자 대 SYSTEM

  27. 27

    Timer가 삭제 된 후 System.Timers.Timer의 Elapsed 이벤트를 발생시키는 예제를 생성 할 수 있습니까?

  28. 28

    System.Timers.Timer : 시작 간격 후에 경과 된 이벤트를 발생시키는 방법은 무엇입니까?

  29. 29

    Environment.CurrentDirectory 대 System.IO.Directory.GetCurrentDirectory

뜨겁다태그

보관