IasyncResult 메서드를 사용하여 비동기식/대기
IAsyncResult
비동기 프로그래밍 방법을 사용하는데, Invoke
대상 자체의 PowerShell
방법을 포함한다.따라서
Invoke
방법으로 쓴 방법에서 async/await
에 호출을 추가하려고 할 때, 반환은'good'olTask.Run
호출입니다.public async Task<bool> IsSessionAliveAsync()
{
return await Task.Run(() =>
{
_powerShell.Commands.AddCommand("Get-PSSession");
var result = _powerShell.Invoke();
return (result?.Count ?? 0) > 0;
});
}
그러나 오늘 나는 TaskFactory
류에서 깔끔한 작은 방법을 발견했다FromAsync
.이 방법은 IAsyncResult
실례를 첫 번째 매개 변수로 하고 IAsyncResult
실례가 완성될 때 의뢰를 촉발한다.그리고... 기대하셔도 돼요!이것은 코드 흐름을 더욱 자연스럽게 하고 코드에서 어느 정도의 범위/중첩을 제거한다.public async Task<bool> IsSessionAliveAsync()
{
_powerShell.Commands.AddCommand("Get-PSSession");
var result = await Task.Factory.FromAsync(_powerShell.BeginInvoke(), _powerShell.EndInvoke);
return (result?.Count ?? 0) > 0;
}
괜찮았어!나는 많은 엔지니어들이 이 점을 보고 "그래, 그래, 이것은 영원히 존재한다."라고 말할 것이라고 믿는다.여보게, 내가 지금 찾게 되어 기쁘다.
Reference
이 문제에 관하여(IasyncResult 메서드를 사용하여 비동기식/대기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nordyj/async-await-with-iasyncresult-methods-1bdf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)