확장 메서드 내에서 yield 연산자를 사용하면 스레드로부터 안전할까요? 예를 들어확장 메서드 내에서 'yield'연산자를 사용하면 스레드로부터 안전합니까?
:
public static IEnumerable<CartItem> GetItems(this Cart cart)
{
{
while(cart.hasNext())
yield return cart.GetNextItem();
}
}
확장 메서드 내에서 yield 연산자를 사용하면 스레드로부터 안전할까요? 예를 들어확장 메서드 내에서 'yield'연산자를 사용하면 스레드로부터 안전합니까?
:
public static IEnumerable<CartItem> GetItems(this Cart cart)
{
{
while(cart.hasNext())
yield return cart.GetNextItem();
}
}
난 당신이 무슨 뜻인지 정확히 모르겠지만, 수율 수익은 기본적으로 상태 시스템 래퍼 클래스를 생성하는 기능을 원인과 클래스의 인스턴스를 반환합니다. 각 수익률 수익은 주 기계에서 반환됩니다. 메서드 호출에 의해 반환 된 개별 인스턴스는 스레드로부터 안전하지 않으며 다중 스레드에서 동시에 반복 할 수는 없지만 여러 호출은 별도의 인스턴스를 생성합니다. 이러한 별도의 인스턴스는 여러 스레드에서 사용할 수 있으며이 경우 스레드 안전은 열거 자에서 사용하는 클래스의 스레드 안전성에 따라 결정됩니다 (cart
의 메서드).
참고 : 반환 값 그렇지 않으면 yield return 구문이 작성되지 않으므로 IEnumerable이어야합니다. –
전에 고마워 했나요? hehehe : P +1 – SDReyes