我有一个数据库连接列表,其中只有一个是有效的。我的应用程序应该连接到它们并尝试根据输入的 userId 获取用户信息。
private string GetDatabaseId(string userId)
{
string dbId = string.Empty;
Parallel.ForEach(dictionaryAllDatabases, (db, state) =>
{
user = GetUserFromDatabase(db.Key, userId);
if (user != null)
{
//we found user in database.set the db.Id and exit the loop
//it takes only 500 milliseconds to hit this line
dbId = db.Key;
state.Stop();
return;
}
}
);
//after about 15 seconds, we reach here
.....
}
找到有效数据库所需的时间不到 500 毫秒,然后我调用 state.Stop() 退出循环。但退出循环大约需要 15 秒。
难道我做错了什么?
谢谢
如果我使用 Parallel.For,PSI 会得到相同的结果