작은 문제로 둘러 보겠습니다. C# -program에서 색상은 처음에는 검정색입니다. MP3 파일이 재생되는 동안 레이블은 녹색으로 표시되고 음악이 끝나면 레이블의 색상은 검정색이어야합니다.C에서 레이블 업데이트 ere mp3가 재생됩니다.
이제 음악이 재생되지만 레이블이 업데이트되지 않습니다. 여러 코드 예제를 사용했지만 어느 것도 작동하지 않습니다. 그게 이벤트와 호출과 관련이 있다는 것을 알지만 어떻게 작동하도록이 코드를 변경해야합니까? 자바에서 나는 SwingUtilities.InvokeLater을 사용() - 메서드,하지만 지금까지 내가 어떤 대응이 C#으로 여기에 없다 알고 있어요으로 ..
delegate void LabelUpdate();
private void check()
{
new Thread(new ThreadStart(updateLabel)).Start();
playSound();
next(); // Used to set the label-color to black
}
private void updateLabel()
{
if (label1.InvokeRequired)
{
UpdateBox d = new LabelUpdate(updateLabel);
this.Invoke(d);
}
else
{
label1.ForeColor = Color.Green;
}
}
어떤 도움을 크게 감사합니다!
'playSound' 함수가 비동기 적으로 사운드를 재생합니까? 만약 당신이 항상'next '를 호출하기 때문에 항상 검은 라벨을 붙일 것입니다. –
'playSound' 함수는 winmm.dll의'mciSendString'을 통해 사운드를 재생합니다 -이 함수가 오디오 파일을 비동기 적으로 재생하는지 여부는 모르겠습니다. – lukew