Können Konstrukteure asynchronisiert sein?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Können Konstrukteure asynchronisiert sein?

by Anonymous » 17 Mar 2025, 14:33

Ich habe ein Projekt, bei dem ich versuche, einige Daten in einem Konstruktor zu füllen: < /p>

Code: Select all

public class ViewModel
{
public ObservableCollection Data { get; set; }

async public ViewModel()
{
Data = await GetDataTask();
}

public Task GetDataTask()
{
Task task;

//Create a task which represents getting the data
return task;
}
}
< /code>

Leider erhalte ich einen Fehler: < /p>


Der Modifikator Async < /code> ist für dieses Element nicht gültig < /p>
< /blockquote>
< />  Natürlich. />public async void Foo()
{
Data = await GetDataTask();
}
< /code>

Es funktioniert einwandfrei. Ebenso, wenn ich den alten Inside-Out-Weg benutze < /p>

GetData().ContinueWith(t => Data = t.Result);
< /code>

Das funktioniert ebenfalls. Ich habe mich nur gefragt, warum wir nicht auf 
in einem Konstruktor direkt anrufen können. Es gibt wahrscheinlich viele (sogar offensichtliche) Kantenfälle und Gründe dagegen, ich kann mir einfach keine vorstellen. Ich habe auch nach einer Erklärung gesucht, kann aber keine finden.

Top