2012-10-24 3 views
0

현재 C#에서 스톱워치 속성을 사용하는 방법을 배우고 있습니다. 스톱워치를 시작하는 button1 있습니다. 시간을 0으로 재설정하고 두 번째 클릭 후에 다시 시작하고 싶습니다. 버튼을 연속적으로 클릭 할 때마다 스톱워치 타이머를 어떻게 재설정 할 수 있습니까?버튼 클릭 후 스톱워치 및 재설정 시간

코드

namespace stopwatch 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent();  
     } 

     Stopwatch sw = new Stopwatch(); 

     private void button1_Click(object sender, EventArgs e) 
     { 
      sw.Start(); 
      TimeSpan x = sw.Elapsed; 
      textBox1.Text = x.ToString();     
     }     
    } 
} 
+1

당신이 x'보다 큰'기대 수행을 0? 그 외에도,'Stopwatch'는 당신이 찾고있는 것을 수행하는 ['Reset'] (http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.reset.aspx) 메소드를 가지고 있습니다 . –

+0

두 번째 클릭에 대해 아직 시도한 적이 있습니까? – Keerigan

답변

1

사용 Stopwatch.StartNew()

대신 코드 조각이 조각보십시오 :

private void button1_Click(object sender, EventArgs e) 
{ 
    sw = Stopwatch.StartNew(); 

    // ... do something ... 

    sw.Stop(); 

    textBox1.Text = sw.Elapsed.ToString(); 
} 
+0

-1 다음 요구 사항을 고려할 때 '시간을 0으로 재설정하고 두 번째 클릭 이후 다시 시작하고 싶습니다.'라고 생각하면 올바르지 않은 것 같습니다 .' 이 코드를 스 니치하면 버튼 클릭 후 Stopwatch가 중지 된 상태가되고 0으로 재설정하고 다시 시작해야합니다. 왜 당신은 매번 Stopwatch의 새로운 인스턴스가 필요한가요? – sll

+0

나는이 견해에 동의한다 : [메타 - 하향 회선 또는 하향 회선을 보지 않겠습니까?] (http://meta.stackexchange.com/a/112664). 기본적으로 _ 내 생각에 당신의 대답이 올바르지 않으므로 일부 주장을 제공하거나 그렇지 않으면 SO가 그렇게 유용한 공동체가되지 않을 것입니다. 그리고 개인적으로, 나는 또한 부정확하거나 심지어 혼란스러운 대답을위한 많은 downvotes을 가지고있다. 나는 나의 downvote를 제거 할 것이다. 단지 더 많은 시간을 보내고 정답이 맞는지 확인해 보라. 또한 질문이 혼란 스럽다. – sll

+0

요구 사항 -'나는 시간을 0으로 재설정하고 두 번째 클릭 후 다시 시작하는 것과 비슷합니다.하지만 귀하의 경우에는 'sw.Stop()'때문에 버튼 클릭 후 스톱워치가 중지됩니다. 그래서 "각 연속 버튼 클릭 후 스톱워치 타이머를 리셋 할 수있는 방법은 무엇입니까?"- 그래서 스톱워치를 멈추지 않고 리셋해야합니다. 각 버튼을 클릭 한 후 SW는 0에서 시작합니다. – sll

0
Stopwatch sw = new Stopwatch(); 
private void button1_Click(object sender, EventArgs e) 
{ 
    sw.Stop(); 
    TimeSpan x = sw.Elapsed; 
    textBox1.Text = x.ToString(); 

    // >= .NET 4 
    sw.Restart();  

    // >=.NET 2.0 
    sw.Reset(); 
    sw.Start();     
} 
+0

이것은 항상 경과 된 시간을 반환하지 않습니다 ... 마지막 클릭 이후 경과 된 시간이 아닙니다. –

+0

값을 표시 한 후'Restart' *를 원할 것입니다. –

+0

확실히 예, 이것은 아주 분명합니다 :) 저는 제 응답을 업데이트했습니다. StopNatch의 새로운 insatnce를 생성하기 때문에 더 비싸기 때문에'StartNew() '를 사용하지 않습니다. – sll

0
private void button1_Click(object sender, EventArgs e) 
    { 
      sw.Stop(); 

      TimeSpan x = sw.Elapsed; 

      textBox1.Text = x.ToString(); 

      sw.Restart(); 
    } 
관련 문제