.NET Framework 4.5 ha un metodo ExecuteScalarAsync().
Vedi qui:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalarasync(v=vs.110).aspx
ExecuteScalarAsync() ha anche un overload con un parametro CancellationToken che può essere utilizzato per abbandonare l'operazione prima che scada il timeout del comando.