Können Konstrukteure asynchronisiert sein?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Können Konstrukteure asynchronisiert sein?

Post by Anonymous »

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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post