2010-03-09 7 views
3

5 초 후에 숨겨진 텍스트가 표시되고 5 초 후에 다시 변경되는 프로그램을 작성하고 싶습니다. 예 : - 프로그램 시작 : TEXT 1 - 5 초 후 : TEXT 1 TEXT 2 - 5 초 후 : TEXT 3 - 5 초 후 : TEXT 3 TEXT 4 ...5 초 후에 문자열 값을 변경하는 방법?

방법 C#에서 초를 계산할 수 있습니까?

+0

프레임 워크를 지정해야합니다. 예 : ASP.NET, Windows Forms 등 – Keltex

답변

-1

처음 5 초 동안 뷰가 반응하지 않아도된다면 UI 스레드를 잠자기 상태로 놓고 나중에 변경하십시오. 이렇게하면 UI 스레드로 다시 기능을 전달하지 않아도됩니다.

+0

예, 수면은 최고 일 수 있습니다. 내 경우에 대한 옵션. 고맙습니다! GUI가가 당신이 정말로, 우리는 당신이 GUI에서 – Peter

+0

@ 피터는 잠이 보편적으로 나쁜 생각입니다. – tanascius

+0

을 사용하는 것을 모른다는 응답 만들기에 대해 생각 ...하지만 귀하의 질문에 Keltex의 의견을 볼 수 관여 – Joel

7

당신은 timer를 사용할 수 있습니다.

+2

System.Windows.Forms 네임 스페이스 : http://msdn.microsoft.com/en-us/library/system.windows.forms.timer.aspx – tanascius

0

Timer을 사용해보세요.

2

좋은 예를 들어 EggTimer in C#를 참조하십시오

이 간단한 타이머 응용 프로그램이 아래 텍스트 상자에 설정되어있는 어떤 값에서 계산됩니다.

1

다양한 옵션이 있습니다. System.Threading.Sleep을 사용하면 특정 시간 동안 차단할 수 있습니다. System.Threading.WaitHandle 하위 클래스도 마찬가지입니다. 필요한 경우 수면을 중단 할 수 있습니다. 마지막으로 Timer를 사용할 수 있습니다. 모든 경우에 동기화가 올바르게 이루어 지도록하십시오.

5

.NET에는 세 가지 Timer 클래스가 있습니다 (내가 알고 있고 사용 해왔음). Windows Forms 응용 프로그램을 작성하는 경우 가장 간단한 방법은 System.Windows.Forms.Timer을 추가하고 해당 Tick 이벤트에 대한 이벤트 처리기를 만드는 것입니다. 간격은 밀리 초 단위로 측정되므로 5 초 동안 5000으로 설정하십시오. other timers도 비슷하게 작동합니다.

다음은 당신이 (당신이 당신의 질문에 언급 된 텍스트를 변경 것이라고하는) 콜백 함수에 대한 람다 식으로이 System.Threading.Timer을 사용할 수있는 방법의 예입니다. (당신이 GUI에 컨트롤을 업데이트하는 경우.이 Form.InvokeRequired 확인 후 Form.Invoke()를 사용하여 수행 할 것 GUI 스레드에 다시 전화를 마샬링 할 필요가 있습니다.)

var timer = new System.Threading.Timer(
    (object state)=>{ /* Your logic here */ }, 
    null, 
    0, 
    5000); 
... 
timer.Dispose(); // Don't forget to Dispose of the Timer when your app closes 
관련 문제