asp.netアプリケーションで、データベースにできるだけ効率的にログインしたいと思います。基本的なADO.NETを使用してログデータベースに書き込み、この非同期を実行したいので、次のようにします。
using (var conn = new SqlConnection(_connectionString)) {
using (var cmd = new SqlCommand("INSERT INTO dbo.Logs (TimeStamp,ThreadId,Level,Message,Exception) VALUES (@TimeStamp,@ThreadId,@Level,@Message,@Exception)", conn)) {
cmd.Parameters.AddWithValue("@TimeStamp", DateTime.UtcNow);
cmd.Parameters.AddWithValue("@ThreadId", Thread.CurrentThread.ManagedThreadId);
cmd.Parameters.AddWithValue("@Level", level);
cmd.Parameters.AddWithValue("@Message", msg);
cmd.Parameters.AddWithValue("@Exception", ex == null ? "" : ex.ToString());
conn.Open();
cmd.ExecuteNonQueryAsync();
}
}
ここで私の質問は、cmd.ExecuteNonQueryAsync()ステートメントで待機を実行する必要があるのか、それとも基本的にファイアアンドフォーゲットを実行する必要があるため待機を省略してもよいのかということです。