LoadNewQCDetails();
메서드가 진행되는 동안 양식을 고정하려고합니다. LoadNewQCDetails();
메서드를 완료 한 후에 UI가 비활성화/일시 중지 되더라도 사용자가 모든 클릭 이벤트를 트리거합니다. 따라서 LoadNewQCDetails();
프로세스가 완료 될 때까지 사용자가 UI에서 아무 것도 클릭 할 수 없도록 양식을 고정해야합니다.Freezing windows form C#
내 코드 :
private void button5_Click(object sender, EventArgs e)
{
//this.SuspendLayout();
//this.Enabled = false;
button3.Enabled = false;
tabControl1.Enabled = false;
groupBox1.Enabled = false;
groupBox2.Enabled = false;
groupBox3.Enabled = false;
GlobalVariable.RefreshArtiCnt = 0;
if (comboBox2.Text != "")
{
// LoadAllQCDetails();
//this function takes nearly 1 minute to complete task
LoadNewQCDetails();
}
else
{ MessageBox.Show("Data not found for this condition", "Alert"); }
button3.Enabled = true;
tabControl1.Enabled = true;
groupBox1.Enabled = true;
groupBox2.Enabled = true;
groupBox3.Enabled = true;
//this.Enabled = true;
// this.ResumeLayout();
}
그런 다음 양식이 완전히로드 될 때까지 양식을 표시하지 마십시오. Long 코드를 OnShowing 이벤트에 추가하고 데이터가 클 경우 비동기식으로로드하도록 호출 할 수 있습니다. 밤 ...! 간단한 수정 또는이 메소드가'LoadNewQCDetails();를 완료하는 데 오랜 시간이 걸리면 타이머가있는 사용자 정의 양식을 작성하고 ShowDialog() 메소드를 사용하여 양식 모달을 표시하고 최종 사용자에게 참을성이 있음을 알리십시오 로드가 몇 분 정도 소요됩니다 ..'LoadNewQCDetails();'메소드는 어떻게 생겼습니까? 첫 번째 비동기로드 할 수 있습니다 – MethodMan
LoadNewQCDetails 큰 루프 또는 쿼리가 포함되어 있습니까? –