私は、非同期関数が完了するのを待っているので、UIスレッドでListViewにデータを取り込めます。再移植は、()、まだ完了していないので、C#Asyncファンクションが途中で返される
は、ここでは、コード
public Form1()
{
InitializeComponent();
Task t = new Task(Repopulate);
t.Start();
// some other work here
t.Wait(); //completes prematurely
}
async void Repopulate()
{
var query = ParseObject.GetQuery("Offer");
IEnumerable<ParseObject> results = await query.FindAsync();
if (TitleList == null)
TitleList = new List<string>();
foreach (ParseObject po in results)
TitleList.Add(po.Get<string>("title"));
}
TitleList = nullをForm1の中に()です。したがって、Wait()を使用しました。ただし、関数が完了する前に待機します。
私はここで間違っていますか?
これはまだブロック 'Task.Wait()'コールを使用しています – kai
@kai:それについての謝罪;今修正されました。 – Douglas
これは完璧に動作します、ありがとう。 なぜあなたに教えてもらえますか 1)Task.Wait()はUIスレッドを応答不能にしますか? (待つのとは対照的に) 2)Task.Wait()は途中で戻りましたか? (元のコードで) – Crimson7