6
試圖找出爲什麼此代碼掛起。我可以刪除測試底部的3條線中的任何一條,它不會掛起,但所有3條線都會掛起。任何幫助將不勝感激!StackExchange.Redis異步調用掛起
[Fact]
public async Task CanAddValuesInParallel() {
var muxer = ConnectionMultiplexer.Connect("localhost");
var db = muxer.GetDatabase();
await AddAsync(db, "test", "1");
await db.KeyDeleteAsync("test");
Task.Run(() => AddAsync(db, "test", "1")).Wait();
}
public async Task<bool> AddAsync(IDatabase db, string key, string value) {
return await db.StringSetAsync(key, value, null, When.NotExists);
}
爲什麼使用'Task.Run'和爲什麼'Wait()'? – i3arnon 2014-12-02 21:12:56
我認爲問題在Task.Run(()=> AddAsync(db,「test」,「1」))。Wait();'。這裏你有僵局。 – 2014-12-02 21:13:23
這是我的代碼的簡化版本。試圖將其分解爲儘可能簡化。我想了解發生了什麼事。 – 2014-12-02 21:14:47