이 같은 종류의 보이는 루틴 (간체)을 최적화하기 위해 노력하고있어이 포함 된 경우 GetBaz()
은 0과 많은 항목을 반환합니다. 우리는 몇 백만 개의 ID를 처리 했으므로 처음에는 응용 프로그램 속도를 높이기위한 초기 시도로 if(bars.Any())
문을 추가했습니다.점검 수율 반환 항목
GetBars()
이 기다리기 때문에 모든 데이터를 수집 할 때까지 스레드가 차단됩니다 (시간이 다소 걸릴 수 있음). 내 생각은 yield return을 사용하고 if(bars.Any())
을 하나 이상의 요소가 있는지 검사하는 검사로 바꿔서 그 동안 다른 두 개의 비동기 메서드를 실행 취소 할 수 있습니다 (실행에 약간의 시간이 소요됨).
내 질문에 다음 어떻게합니까. 나는 System.Linq.Count()
과 System.Linq.Any()
이 yield yield의 전체적인 아이디어를 무효로하고, enumerable의 첫 번째 항목을 체크하면 열거 가능 값에서 제거된다는 것을 알고있다.
예를 들어 out 매개 변수를 GetBars()
에 추가하는 것 외에 다른/더 나은 옵션이 있습니까? 012 : 출력 : 수익률 반환 값의 열거 형이 반복을 시작하지 않고 개체를 포함하고 있는지 확인하려면 어떻게합니까? 실제 질문에 대한
잘못된 인상을 주었다면 수정하십시오. GetBars()에 첫 번째 요소를 검사하는 요소가 있는지 여부를 알 수있는 방법을 찾으려고합니다. 권리? –
@mot 맞습니다. 원래 질문에 추가하겠습니다. – Asser
''await client.GetFoos'는'GetBars' 메소드의 가장 긴 부분입니까? – Rawling