Beim Debuggen wird plötzlich ein seltsamer Fehler angezeigt. Bisher wurde die Variable in den Überwachungsfenstern korrekt angezeigt. Jetzt erhalte ich immer die Fehlermeldung in den Überwachungsfenstern:
Für die Funktionsbewertung müssen alle Threads ausgeführt werden
Ich kann keine Variable mehr überprüfen. Ich arbeite nicht explizit mit Threads. Was kann ich tun, damit es wieder funktioniert?
Ich habe bereits wie in einigen Foren erwähnt die Funktion "Eigenschaftsauswertung und andere implizite Funktionsaufrufe aktivieren" im Optionsfenster des Debuggers deaktiviert. Aber ohne Erfolg bekomme ich dann den Fehler:
Fehler Implizite Funktionsbewertung vom Benutzer deaktiviert
Antworten:
Aus dem msdn Forum:
Weitere Details zu diesem Verhalten finden Sie in diesem hervorragenden Artikel
quelle
.ToList()
oder.Any()
.var
undIEnumerable<T>
und nur zugewiesendb.AGENCY_TABLE.OrderBy(e => e.Name);
- aber sobald ichvar
mit.ToList()
(oderList<T>
mit.ToList()
auch funktioniert) verwendet, zeigt es das Ergebnis!Ich bin auf dieses Problem gestoßen, als ich nur versucht habe, mit Entity Framework Elemente aus einer Tabelle namens "AGENCY" abzurufen:
Wenn Sie im Debug-Modus über Agenturen fahren, auf klicken, um die Optionen zu erweitern, und auf Ergebnisse klicken, wird das gefürchtete Symbol "Die Funktionsbewertung erfordert, dass alle Threads ausgeführt werden" mit dem Symbol "Nicht eingeben" am Ende angezeigt, auf das das Klicken nichts bewirkt hat.
2 mögliche Lösungen:
.ToList()
Am Ende hinzufügen :var agencies = db.AGENCY_TABLE.OrderBy(e => e.FULLNAME).ToList();
List<AGENCY_TABLE> agencies = db.AGENCY_TABLE.OrderBy(e => e.FULLNAME).ToList();
Dank geht an Hp93, der mir geholfen hat, zu dieser Lösung zu gelangen. In den Kommentaren zu MUG4Ns Antwort, in der ich diese Lösung gefunden habe, wird auch erwähnt, dass versucht
.Any()
wird.ToList()
, aber dies gibt einen Booleschen Wert anstelle eines<T>
, wie es<AGENCY>
ist, also würde es wahrscheinlich nicht helfen.Problemumgehung - Versuchen Sie einen anderen Pfad in den Debug-Optionen. Ich habe festgestellt, dass ich auf "Nicht öffentliche Mitglieder"> "_internalQuery"> ObjectQuery> Ergebnisansicht klicken und meine Werte auf diese Weise abrufen kann.
quelle
MUG4N hat in der Tat eine korrekte Antwort geliefert. Wenn Sie jedoch beim Debuggen über die Codezeile fahren, sehen Sie sich möglicherweise Folgendes an. Wenn ja, klicken Sie auf das kleine Symbol zur Neubewertung, das im Bild unten hervorgehoben ist ...
NB : Ich habe dieses Bild durch Anheften erhalten. Normalerweise befindet sich das Symbol für die Neubewertung in der Mitte des Fensters und nicht in der linken Spalte.
quelle
Sie sollten threadsicher aufrufen, da der Zugriff auf Windows-Formularsteuerelemente beim Multithreading nicht threadsicher ist. Dies ist mein einfacher Code, der Thread sicher aufruft und den Fortschrittsbalken setzt.
Weitere Informationen MSDN
quelle
Ich benutze die nächste Problemumgehung, um zu bestehen:
Jetzt habe ich einen Wert für OtherThreadField.
quelle