나는 여기서 밀도가 높다고 생각합니다. 나는 다른 목록이 포함되어 있습니다 그 중 하나는 두 개의 클래스를 가지고 - 여기 삭감 버전입니다 : 그 목록에서 속도 개체 중 하나의 우선 순위가 변경 될 때마다 나는 통지하는 부모의 서비스 객체가 필요속성 변경시 OnNext 호출
Class Service
Private _ratesList As New List(Of Rate)
Public Property Rates As IEnumerable(Of Rate)
Public Sub AddRate(rate As Rate)
_ratesList.Add(rate)
End Sub
End Class
Class Rate
Private _priority As Integer
Public Property Priority As Integer
Get
Return _priority
End Get
Set(ByVal Value As Integer)
_priority = Value
End Set
End Property
End Class
. 다음은 내가 원하는 것입니다 :
Class Service
Private _ratesList As New List(Of Rate)
Public Property Rates As IEnumerable(Of Rate)
Public Sub AddRate(rate As Rate)
rate.PriorityChanges.Subscribe(AddressOf HandleRatePriorityChange)
_ratesList.Add(rate)
End Sub
Private Sub HandleRatePriorityChange(rate As Rate)
' Do something
End Sub
End Class
Class Rate
Private _priorityChanges As New Subject(Of Rate)
Public ReadOnly Property PriorityChanges As IObservable(Of Rate)
Get
Return _priorityChanges
End Get
End Property
Private _priority As Integer
Public Property Priority As Integer
Get
Return _priority
End Get
Set(ByVal Value As Integer)
_priority = Value
_priorityChanges.OnNext(Me)
End Set
End Property
End Class
따라서 rate 클래스는 속성이 새 값으로 설정 될 때마다 OnNext를 호출합니다.
내 관심사는 (예를 들어) Observable.Create 대신 Subject를 사용하고 있다는 것입니다. 이 작업을 수행하는 데 권장되는 방법은 무엇입니까? 나는 그것이 명백하게 명백하다라고 확신한다. 그러나 나는 내가 나무를 위해 나무를 볼 수없는 상태에 도착했다!
내 블로그 게시물 [주제 사용 또는 사용하지 않기] (http://davesexton.com/blog/post/To-Use-Subject-Or-Not-To-Use-Subject)를 읽어보십시오. .aspx) –
감사합니다. 매우 도움이됩니다. 제목과 같은 소리가가는 길입니다. 나는 당신이 당신의 포스트에서 언급 한 바로 그 의견과, 어떤 시점에서 주제가 열악한 성과로 다시 쓰여질 수도 있다는 제안에 연기되었습니다. –
'Subject'이 성능 저하로 다시 작성되는 것에 대해 걱정할 필요가 없습니다. Rx 1.0에서는 팀이 성과보다는 정확성에 집중하고 있었기 때문에 잠금 장치를 사용하여 Rx 문법과 일련 번호가 지정된 알림을 보장했습니다. Rx 2.0을 통해 팀은 잠금을 제거하고 문법 제약을 완화하여 성능을 크게 향상 시켰으며 Rx에서도 비슷한 변화를 만들었습니다. 나는 그들이 다시 되돌아 갈 것을 의심한다. http://blogs.msdn.com/b/rxteam/archive/2012/03/12/reactive-extensions-v2-0-beta-available-now.aspx –