0
我有檢查一個SQL Server是否可寫,它接受一個有字典密鑰的方法的方法或不調用內部的相同方法asynchronoulsy for循環和追趕結果正常
public static bool IsServerAvailable(string connection)
{
bool isAvailable = false;
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
isAvailable = true;
}
}
catch
{
isAvailable = false;
}
return isAvailable;
}
現在我有作爲連接字符串和更新值取決於從上面返回的結果方法
但問題是我需要進行異步調用和能夠做到,但面臨的問題與更新字典中相應的conn(鍵)的值
public delegate bool CheckConnectionDelegate(string conn);
public static void CheckCubeAccessibility(Dictionary<ServerName, bool> serverDict)
{
string conn;
//Create the delegate
CheckConnectionDelegate serverConn = new CheckConnectionDelegate(IsServerAvailable);
foreach (var server in serverDict)
{
switch (server.Key)
{
case ServerName.A:
conn = "A";
break;
case ServerName.B:
conn = "B";
break;
case ServerName.C:
conn = "C";
break;
}
//Call the begin invoke method
IAsyncResult res = serverConn.BeginInvoke(conn, null, null);
}
}
任何人都可以幫助我嗎?
對於上述問題解決方案是 寫在How to get the parameters passed to the asynchronous method in the callback
提到lambda表達式但我需要一個解決方案延遲功能CheckCubeAccessibility返回,直到所有的異步調用返回
如何做到這一點?