문제

한 두 가지가 아닌 비 되풀이하는 이벤트 발생 X 초부터 지금과 같은 제한 시간.직관적으로 만들 것을 만들기 시스템입니다.타이머가 있습니다.타이머 설정 간격 X*1000,철사 그 진드기 이벤트를 시작합니다.이 non-반복 이벤트 및 당신은 단지 그것을 원하 제기되면 다음을 중지해야 타이머 후 틱.

는 사실 타이머는 본질적으로 반복되 그러나 저를 심는 경우에 이것은 실제로 가장 좋은 방법이 하고 있습니다.나을 것이/더 많은 정확/안전한 시간을 절약하기 위해 시작된 세트 타이머를 체크하는 모든 두 번째는(또는 밀리초)에 틱 설문 조사에 대한 시스템시간 및 수동으로 대상을 높이기 위해 이벤트를 한 번만 필요한 시간이 경과?

할 수 있는 사람에 무게 되는 경우 가장 좋은 방법(아마도 다른 옵션이 있습니다 내가 생각하지 않도).는 방법 중 하나는보다 더 나은 다른 경우는 기간 내가 기다릴 필요가 밀리초 단위로 측정됩?

도움이 되었습니까?

해결책

생성자 에 대한 시스템입니다.Threading.타이머을 지정할 수 있습니다 기간.는 경우에 당신은 이 매개 변수를 설정 -1,비활성화됩니다 주기적 신호만을 실행 한다.

public Timer(
    TimerCallback callback,
    Object state,
    TimeSpan dueTime,
    TimeSpan period
)

다른 팁

사용 일반 타이머 사용을 중지한 후에는 경과된다.해야 하는 문제를 해결합니다.

모두,시스템입니다.threading.타이머 시스템입니다.타이머가 있습니다.타이머는 이것을 지원합니다.

스 새로운 BackgroundWorker,수면,가깝습니다.

var worker = new BackgroundWorker();
worker.DoWork += delegate {
  Thread.Sleep(30000); 
  DoStuff();
} 
worker.RunWorkerAsync();

당신이 사용할 수 있는 시스템입니다.타이머가 있습니다.타이머와 AutoReset=true,또는 시스템입니다.Threading.타이머의 무한한 기간(시스템입니다.Threading.시간을 초과했습니다.무한=-1)를 실행하는 타이머 한다.

어느 경우에,당신은 당신의 처분을 때 당신이 그것으로 마친(에서의 이벤트 처리기 타이머가 있습니다.타이머 콜백한 Threading.타이머)있지 않으면 반복되는 간격.

단지 설정을 체크한 후 X 초고의 코드에 체크,하:

타이머입니다.사용 가능=false;

나를 위해 일했습니다.

당신이 원하는 경우 정확한 시간을 측정하는 고려해야 합니다 두배로 하는 타이머 주파수를 사용하여 날짜/시간입니다.지금 비교하기 위해 시작 시간입니다.타이머 스레드가 있습니다.잠이 없는 반드시 정확한에서 자신의 시간을 측정합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top