내가 가지고있는 다음과 같은 방법비동기 SHA256 해시
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);
}
}
비동기를 만들 수있는 방법이 있나요? 비동기과 은 키워드를 기다리고 있지만 HashAlgorithm
클래스는이를위한 비동기 지원을 제공하지 않기를 바랍니다.
또 다른 방법
는 모든 로직을 캡슐화하는 것이었다 :public static async string Sha256Hash(string input) {
return await Task.Run(() => {
//Hashing here...
});
}
을하지만이 깨끗하지 않는 것 그리고 내가 비동기 작업을 수행 할 수있는 올바른 (또는 효율적으로) 방법입니다 있는지 확실하지 않습니다.
이 작업을 수행하려면 어떻게해야합니까?
왜이 작업을 비동기 적으로 수행하려고합니까? –
@CoryNelson 솔직히 모르겠습니다. 내가 비동기 적으로 또는 다른 스레드에서 실행되도록하여 코드를 최적화한다고 생각했습니다. 그러나 대답은 내 마음을 맑게했습니다. –
@CoryNelson : 대용량 파일의 해시를 계산하는 동안 응답 성있는 UI를 유지하기 위해 비동기 적으로이 작업을 수행해야하는 상황에 직면했습니다. –