아래 코드는 사용자가 '예'를 선택했는지 여부에 따라 휠을 10 번 또는 1 번 회전합니다.for 루프에서 int 값을 무작위로 생성합니다. 7 번 반복 한 후에는 매우 큰 음수를 반환합니다. 왜 이런거야?
회전 방법은 0-100 사이의 숫자를 취하고 해당 숫자를 기준으로 필터를 회전합니다. 기계를 테스트하기 위해 0-99 사이의 난수를 생성하려고합니다. 나는이 방법이 그렇게 할 수 있어야한다고 생각한다. 그러나 7 번이 끝나면 생성 된 난수는 실행이 끝날 때까지 -2.147483465E + 09가됩니다. 출력은 다음과 같습니다.
89
20
1
58
78
39
90
-2.147483465E+09
-2.147483465E+09
-2.147483465E+09
가비지 수집과 관련된 것이 있습니까? 'sUVFilter'는 메서드에 의해 0으로 변경되지 않습니다.이 값은 rand.Next()로 설정했을 때의 값입니다.
도움이나 정보를 제공해 주시면 감사하겠습니다. 고마워. 여기에 문제의 코드가 있습니다. 코멘트에서
private void RotateFilterWheel()
{
List<float> filterValuesList = new List<float>();
int timesToRotate = 1;
int success = 0;
Random rand = new Random();
MessageBoxResult result = MessageBox.Show("Rotate filter 10 times?", "Rotate Filter", MessageBoxButton.YesNo);
if (result == MessageBoxResult.Yes)
{
timesToRotate = 10;
}
for (int x = 0; x < timesToRotate; x++)
{
int sUVFilter = rand.Next(99);
_instDrvr.SetSpectroAutoUVFilterPosition(sUVFilter, ref success);
filterValuesList.Add(sUVFilter);
Thread.Sleep(5000);
}
listBox.ItemsSource = filterValuesList;
}
:
프로그램의 진짜 문제 메이커입니다
최소한의 완전하고 검증 가능한 예를 게시하십시오. –
@HenkHolterman 이해합니다. 사과드립니다. 나는 왜 내가 매번 50 초 동안 멈추고 있는지 묻고있는 줄 알았다. rand.Next (99) 라인에 의해 설정되고 _instDrvr이 그것을 만진 직후에 sUVFilter에서 감시로 발생하는이 스크린 샷이 있습니다. http://imgur.com/YFNYpfH 목록 상자가 아닙니다. 값은 sUVFilter가 설정되면 발생합니다. –
@RobAdams,'_instDrvr'은 무엇입니까? – Bigeyes