내 응용 프로그램은 C# Windows 양식 응용 프로그램입니다. 사용자가 버튼을 누르면 내 응용 프로그램이 새 스레드를 생성합니다 "생성"과정이레이블 및 진행률 막대
Loop counter = 1 to N
progressbar = counter/N
Display msg on label1
Do some tasks
Loop
progressbar = 100%
Display msg on lable1
내 processbar 및 레이블 MSG를 위임했습니다 다음이 의사 코드 같은 것을가는 새로운 프로세스를 실행 메시지가 나타난다 그것은 아무 문제없이 루프 내에있는 경우에도 내 마지막 메시지가 나타나지 않지만 레이블 텍스트가 변경 될 때마다 Application.DoEvents()를 실행하는 이벤트를 추가했습니다. 마지막으로 Application.DoEvents()를 배치하려고했습니다. msg 레이블, 그러나 해결책은 없습니다. 누구든지 전에이 문제가 발생 했습니까?
도움을 주신 모든 분들께 감사드립니다.
편집
이 내 마지막 MSG (루프 후 하나) 고정
this.BeginInvoke((MethodInvoker)delegate()
{
toolStripProgressBar1.Value = 100;
btnCancel.Enabled = false;
btnBrowse.Enabled = true;
btnSaveTo.Enabled = true;
btnGenerate.Enabled = false;
// Performance testing
lblGeneratingInfo.Text = "Generation Complete! Total Run time: " + DateTime.Now.Subtract(startDate).ToString();
});
코딩하는 방법입니다 : 내가 표시하려 텍스트 너무 긴 있으리라 믿고있어 을 ... "실행 완료 : 총 실행 시간"을 "실행 시간 :"으로 바꾼 경우 o_o
조언을 주셔서 고마워, 나는 변경된 텍스트에 대한 Application.DoEvents()를 꺼냈다, 모든 것이 여전히 새로운 스레드에서 잘 실행되지만, 마지막 메시지는 여전히 나타나지 않는다. 다른 모든 메시지 완전히 위로 shwos – ChickSentMeHighE
@MikeAbyss - 당신은 레이블을 볼 수 있습니까? 거기에 어떤 것이 * 나타나는지 분명하지 않습니다 ... –
예 레이블이 항상 보이고 코드가 가시성을 변경하지 않거나 마지막 메시지가 "Generation Complete!"로 표시되어야합니다 총 실행 시간 [시간 프로세스를 완료하는 데 걸렸습니다] ". 원래 레이블이있는 상태 표시 줄이 있었지만이 레이블은 텍스트를 업데이트하고 표시 할 때 아무런 문제가 없었습니다. 그러나 상태 표시 줄에 진행률 표시 줄을 추가하면이 문제가 발생하기 시작했습니다. 감사! – ChickSentMeHighE