1
鑑於: 我有一個類管理用戶存儲。現在創建類時,我想確保索引是異步方法。目前我只是打電話等待,但我不舒服,因爲我有點擔心掛起線程等意外行爲。等待C#構造函數中的異步方法
public MongoUserStorage(IMongoDatabase database)
{
userCollection = database.GetCollection<MongoUser>("Users");
roleCollection = database.GetCollection<MongoUserRole>("UserRoles");
CreateIndexesAsync().Wait();
}
問:
什麼是處理這個asynchous mehtod最好的方法? (我想肯定的是,指標存在的類實例化後)
只要做到:CreateIndexesAsync().Wait();
或
var task = CreateIndexesAsync();
task.ConfigureAwait(false);
task.Wait();
或者有什麼更好的解決辦法?
如果以這種方式使用'ConfigureAwait',則不執行任何操作。正如您可能已經注意到的那樣,它會返回'TaskAwaitable',它應該是'await'-ed,而不是任務。任務本身不受影響。我認爲你對目前的工作(以及所有相關的風險)感到困惑。 –
「關注懸掛線程等意外行爲」我認爲你應該先理解這個問題。這可以讓你斷定這是安全的。 – usr