ho il seguente metodo:asincrono SHA256 hashing
public static string Sha256Hash(string input) {
if(String.IsNullOrEmpty(input)) return String.Empty;
using(HashAlgorithm algorithm = new SHA256CryptoServiceProvider()) {
byte[] inputBytes = Encoding.UTF8.GetBytes(input);
byte[] hashBytes = algorithm.ComputeHash(inputBytes);
return BitConverter.ToString(hashBytes).Replace("-", String.Empty);
}
}
C'è un modo per rendere asincrona? Speravo di usare async e attendere le parole chiave, ma la classe HashAlgorithm
non fornisce alcun supporto asincrono per questo.
Un altro approccio è stato quello di incapsulare tutta la logica in una:
public static async string Sha256Hash(string input) {
return await Task.Run(() => {
//Hashing here...
});
}
Ma questo non sembra pulito e non sono sicuro se è un modo corretto (o efficiente) per eseguire un'operazione in modo asincrono.
Cosa posso fare per ottenere questo risultato?
Perché stai provando a farlo in modo asincrono? –
@CoryNelson Non lo so onestamente. Ho pensato che avrei ottimizzato il codice facendolo girare in modo asincrono o su un altro thread. Ma le risposte mi schiarirono la mente. –
@CoryNelson: mi sono imbattuto recentemente in una situazione in cui avevo bisogno di fare questo in modo asincrono per mantenere un'interfaccia utente reattiva mentre calcolavo l'hash di un file di grandi dimensioni. –