閱讀我有嘗試從MS Access數據庫逐行讀取並在屏幕上顯示它時,每個顯示之間有睡眠幾秒鐘的一個爛攤子如何延遲我的計劃。而從數據庫C#
我使用System.Threading
,你可以看到,但它似乎在睡覺時發生的程序顯示的記錄,並在睡眠結束只有最後一條記錄,而不顯示以前的顯示之前。
這是我的代碼,我會很感激任何幫助!
private void com_start_Click(object sender, EventArgs e)
{
try
{
string ConString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\MyBrainWash\Englishdb.accdb;";
OleDbConnection Con = new OleDbConnection(ConString);
Con.Open();
check_connection.Text = "succeeded";
OleDbCommand command = new OleDbCommand();
command.Connection = Con;
command.CommandText = "Select * From words";
OleDbDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
lab_word.Text = reader["word"].ToString();
lab_definition.Text = reader["definition"].ToString();
Thread.Sleep(30000);
}
}
reader.Close();
Con.Close();
}
catch (Exception ex)
{
MessageBox.Show("Error " + ex);
}
}
當你睡你的UI線程睡眠異步方法。然後屏幕上沒有任何更新。你需要一個計時器或其他更好的辦法。 'Thread.Sleep()'幾乎總是做錯的事情。 –
我可以建議簡單地從數據庫中讀取所有數據,並簡單地延遲顯示您的信息嗎? – Fang
相關:http://stackoverflow.com/questions/20849979/how-to-make-oledb-code-run-asynchronous –