Hallo zusammen.
Ich habe eine Merkwürdigkeit bei der Modifizierung einer BindingSource entdeckt und stehe vor einem Rätsel. Erstmal der Code:
Rufe ich im Konstruktor die Sub
Warum ist das so? Was habe ich übersehen? Was läuft intern noch ab, was
Ich habe eine Merkwürdigkeit bei der Modifizierung einer BindingSource entdeckt und stehe vor einem Rätsel. Erstmal der Code:
VB.NET-Quellcode
- Public Class StrangeBindingSource : Inherits BindingSource
- Private ReadOnly InternalList As New List(Of String)
- Public Sub New()
- 'Init()
- InitAsync()
- End Sub
- Private Sub Init()
- DataSource = InternalList
- End Sub
- Private Async Sub InitAsync() 'Auslagerung der Initialisierung, da der Konstruktor nicht mit Async modifiziert werden darf
- Await Threading.Tasks.Task.Delay(1)
- Init()
- End Sub
- Public Sub CheckDataSource()
- If DataSource Is InternalList Then Stop
- Stop
- End Sub
- End Class
Rufe ich im Konstruktor die Sub
Init()
auf, sagt mir die Methode CheckDataSource()
, dass DataSource
nicht gleich InternalList
ist. Verwende ich hingegen InitAsync()
, klappt es.Warum ist das so? Was habe ich übersehen? Was läuft intern noch ab, was
InitAsync()
funktionieren lässt, Init()
aber nicht? Habe es auch schon mit dem hier probiert, ohne Erfolg:Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.