Lesen Ich habe die folgende MethodeHowto die UI Benachrichtigen während Datensätze mit einem SqlDataReader
public List<VatRate> GetAll(string cnString)
{
List<VatRate> result = new List<VatRate>();
using (SqlConnection cn = new SqlConnection(cnString))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = SQL_SELECT;
cmd.CommandType = System.Data.CommandType.Text;
cn.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
VatRate vr = new VatRate();
vr.IDVatRate = reader["IDVatRate"] == System.DBNull.Value ? Guid.Empty : (Guid)reader["IDVatRate"];
vr.Percent = reader["Percent"].XxNullDecimal();
vr.Type = reader["Type"].XxNullString();
vr.VatRateDescription = reader["VatRateDescription"].XxNullString();
}
}
reader.Close();
cn.Close();
}
return result;
}
Es in einer WPF-Anwendung verwendet werden, und ich möchte in der Lage, die Benutzeroberfläche des Lesefortschritt zu informieren. Muss ich ein einfaches Ereignis ansprechen? etwas wie OnProgress (new MyProgressEventHandler (recordcounter)); Ich weiß sicher, dass eine Methode wie diese die Benutzeroberfläche während der Ausführung einfriert. Gibt es etwas Besseres, das man zum Beispiel mit den asynchronen Methoden machen kann, um auf die Ausführung der Methode zu warten, aber den Benutzer darüber informieren zu können?
Sie sollten in der Lage sein, die Methode "async" zu machen und dann den Anruf nur zu erwarten. – itsme86
Vielleicht könnte eine Idee von Progressbar mit BackgroundWorker eine der Referenzen sein. –
Die Async erwarten scheint eine nette Möglichkeit, um fortzufahren, aber es löst nicht mein Fortschritt Benachrichtigungsproblem, muss ich die Async erwarten und ein Ereignis zu verwenden die UI benachrichtigen? und gibt es in diesem Fall Probleme mit Querfäden? Vielen Dank im Voraus –