하나의 WinForm에서 서로 다른 프로세스에 대해 두 개의 타이머를 호출하고 있으며 둘 다 동일한 try-catch 형식을 사용하고 있습니다. 처음 며칠 동안은 정상적으로 작동하고 느리게 시작됩니다. 서버에 부하가 걸리는 것을 볼 수 있습니다. 내 타이머 이벤트가 맞습니까? 이 이벤트에 많은 부하가 걸리지 않습니까?내 Windows 타이머가 완벽하게 실행되고 메모리 누수가 발생하지 않는지 확인하는 방법
내 코드에서 예외가 발생하는 경우에만 타이머를 중지합니다. 나는 예외는 아니지만 내 시간이 멈추지 않을지는 의심 스럽다. 타이머를 두 번째로 시작하면 더 많은로드가 걸리거나 리셋됩니다. 귀중한 조언을 해주세요. 미리 감사드립니다.
내 코드는 다음과 같습니다.
타이머 1 틱 :
private void timerMain_Tick(object sender, EventArgs e)
{
try
{
// Retrieve some status and Update
}
catch (Exception ex)
{
timerMain.Stop();
MessageBoxHelper.ShowException(LanguagePack.LanguageHelper.GetString(GlobalParameters.Language, "Error_ExecutionEx"), ex);
}
finally
{
timerMain.Start();
}
}
타이머 2 틱 :
private void timerWorkStep_Tick(object sender, EventArgs e)
{
try
{
// Retreive Some value from web proxy and set to label
}
catch (Exception ex)
{
timerWorkStep.Stop();
MessageBoxHelper.ShowException(LanguagePack.LanguageHelper.GetString(GlobalParameters.Language, "Error_ExecutionEx"), ex);
}
finally
{
timerWorkStep.Start();
}
}
타이머 설정에 문제가없는 것으로 보입니다. 코드의 try 부분에서 무엇을하고 있어도 메모리 누수가 발생할 수 있습니다. 타이머가 문제라고 생각하게 된 이유는 무엇입니까? –
의견을 보내 주셔서 감사합니다. 내 이벤트에서는 예외를 제외하고는 타이머를 멈추지 않아도 마침내 timer.start를 호출했습니다. 그래서 내가 느꼈다, 그것은 루프 이상이며 타이머는 여러 인스턴스를 실행합니다. – Mdyahiya
답장을 보내는 사람에게 알리려면 다음과 같이 언급해야합니다. @ninjacoder –