まず、私は自分の英語を謝ります。凍結せずにSQL接続を毎秒確認してください
SQL(TestConneccion
)への接続を確認する方法があり、タイマーを使用して毎秒確認しています。
問題は、接続が失われたときに、アプリケーションが接続しようとしている間にハングすることです。私はこれを避けるためにタスクを使用していますが、私はC#を初めて使っています。
私は助け
public string testConeccion()
{
var archivo = "";
try
{
odb = DatabaseFactory.CreateDatabase("TESTCONECTION");
ocn = odb.CreateConnection();
if (ocn.State == ConnectionState.Closed)
{
ocn.Open();
}
ocn.Close();
archivo = "true";
}
catch (InvalidOperationException ex)
{
archivo = ex.Message;
}
catch (Exception ex)
{
archivo = ex.Message;
}
finally
{
ocn.Close();
}
return archivo;
}
private void timerMesas_Tick(object sender, EventArgs e)
{
Task<string> T1 = Task.Run<string>(() => oClasePublica.testConeccion());
if (T1.Result == "true")
{
btnEstado.Image = new System.Drawing.Bitmap(TOUCHREST.Properties.Resources.Status_32x32);
}
else
{
btnEstado.Image = new System.Drawing.Bitmap(TOUCHREST.Properties.Resources.Warning_32x32);
}
}
TestConexion –
のコードを表示してください。申し訳ありませんが、TestConexionではなく、TestConeccion()です。 –
あなたは 'using'ステートメントが見つからないようです。なぜなら、あなたの接続が' IDisposable'を実装していると思いますか?また、finallyブロックが常に実行されるので、2回閉じているように見えます(接続が成功した場合) – Icepickle