내가 버튼을 내가 두 FirstNames 및 라스트 네임 검색하고윈폼은 UI : 비동기 사용/기다리고 및 ADO.NET
private async void btnSearch_Click(object sender, EventArgs e)
{
lblSearchStatus.Text = "Searching...";
await FetchFirstNames();
lblSearchStatus.Text = "searching for First Name";
await FetchLastNames();
lblSearchStatus.Text = "searching for Last Name";
}
을 클릭하는 위치 WinForms
에 async
await
을 배우려고 노력하고 있어요 내가 전화하고 싶은 다른 방법은 asynchronously
. ---> "이름 검색" "... 검색"
private async Task FetchFirstNames()
{
...
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
SqlDataAdapter dap = new SqlDataAdapter(command);
DataTable tblMatches = new DataTable();
await Task.Run(() =>dap.Fill(tblMatches)); //it takes about 5s to complete.
...
lblSearchStatus.Text = tblMatches.Rows.Count.ToString() + " first names found.";
}
}
을 내 의도가 lblSearchStatus
의 텍스트에서 변경해야한다는 것입니다 버튼을 클릭에 : 두 가지 방법이 유사하고 코드는 다음과 같이 간다 ---> "성을 검색 중"---> "123 성/이름을 찾았습니다." 그러나 내가 그것을 실행할 때 레이블은 "Searching .."에서까지 "123 성/이름을 찾았습니다"에서 바로 바뀝니다.
어디서 잘못 가고 있습니까?
메시지는 결과가 계산되었음을 나타냅니다. 이게 5 초가 걸릴거야? – usr
예 3-6s 사이의 값이면 레이블의 텍스트 변경 사항을 볼 수있을 정도로 길습니다. "검색 중 ..."에서 텍스트가 멈추고 "123 개의 이름이 발견되었습니다" – Luftwaffe
동결 중에 디버거를 일시 중지합니다. 실행중인 항목은 무엇입니까? – usr