문제

이벤트에 대한 LINQ는 무엇입니까? RX 프레임 워크 AKA .NET 4.0의 반응성 확장 (그러나 백 포트 버전으로도 사용할 수 있음)?

다시 말해서, System.Reactive.dll의 모든 내용은 무엇입니까?

도움이 되었습니까?

해결책

.NET RX 팀 (이 이름은 공식 이름이 아닙니다)은 푸시 시퀀스 (이벤트, 콜백)를 당기 시퀀스 (일반적으로 열거 자리에 액세스하는 동안)로 볼 수 있거나 본질적으로 이중입니다. 짧은 관찰자/관찰 가능한 패턴은 열거 패턴의 이중입니다.

그렇다면이 이원성에 대해 쿨은 무엇입니까?

풀 시퀀스 (선언 스타일 코딩 읽기)로 수행하는 모든 작업은 시퀀스를 푸시하는데도 적용됩니다. 몇 가지 측면이 있습니다. 기존 이벤트에서 관찰 가능한 이벤트를 생성 한 다음 .NET에서 일류 시민으로 사용할 수 있습니다. 즉, 이벤트에서 관찰 가능한 것을 만들고 속성과 동일하게 노출 될 수 있습니다.

iobservable은 ienumerable의 수학적 듀얼이므로 .net rx는 ienumerables의 linq와 매우 유사한 이벤트와 같은 푸시 시퀀스를 통해 LINQ를 용이하게합니다.

새로운 이벤트를 작성할 수있는 더 큰 자유를 제공합니다. 일반 행사에서 특정 이벤트를 만들 수 있습니다.

.NET RX는 "이벤트 소스 및 싱크대의 생산자 및 소비자로 입력 및 출력 어댑터를 사용하는 대안을 제공하는 IOBSERVABLE 및 IOBSERVER의 두 개의 인터페이스를 도입하며, 이는 곧 선언적 방식으로 비동기 코드를 작성하는 데있어서 DeCacto가됩니다. 다음은 빠른 예입니다.

//Create an observable for MouseLeftButtonDown

var mouseLeftDown=Observable.FromEvent<MouseButtonEventArgs>  
        (mycontrol,"MouseLeftButtonDown");  

//Query the above observable just to select the points
var points = from ev in mouseEvents  
                 select ev.EventArgs.GetPosition(this);  

//Show points in the window's title, when ever user
//presses the left button of the mouse
points.Subscribe(p => this.Title = "Location ="  
                                        + p.X + "," + p.Y);

머리와 꼬리를 자세히 알리기 위해이 게시물을 살펴볼 수 있습니다. 또한 관련 소스 코드도 살펴보십시오.

이 기사 세트를 확인하십시오

다른 팁

자세한 내용은 다음을 참조하십시오.http://themechanicalbride.blogspot.com/2009/07/introducing-rx-linq-to-events.html

F#에 대한 그의 책을 읽으면서 첫 번째 노출 이이 블로그에있었습니다.http://tomasp.net/articles/reactive-ii-csevents.aspx

기본적 으로이 이해는 마우스 움직임을위한 이벤트 핸들러를 작성할 때 이러한 이벤트를 지속적으로 캡처하고 아마도 얼마나 많은 움직임이나 클릭 수를 계산할 수 있지만 기본적으로 사용하려는 것입니다. 이벤트 핸들러보다 더 많은 방법으로 정보. 따라서 이벤트를 연속 스트림으로 취급하십시오.

또한이 채널 9 비디오를 확인하십시오. 전문가 대 전문가 : Brian Beckman 및 Erik Meijer- .NET 반응 프레임 워크 내부 (RX)

쇼 설명에서 :

.NET Reactive Framework (RX)는 LINQ에서 개체의 수학적 듀얼입니다. 푸시 기반 또는 관찰 가능한 컬렉션을 나타내는 한 쌍의 인터페이스 IOBSERVER/IOBSERVABLE로 구성되어 있으며 LINQ 표준 쿼리 연산자 및 기타 유용한 스트림 변환 기능을 구현하는 확장 방법 라이브러리로 구성됩니다.

RX의 본질은 생각합니다 각도 변경 우리는 정보를보고 있습니다. 당연히 모든 정보는 시간 공간 연속체에서 발생하는 일부 프로세스의 결과입니다. 전통적인 접근 방식은 프로세스의 투영과 함께 작동합니다. "현재의" 시간 평면, 결과로 시간 치수의 세부 사항을 잃어 버립니다.

RX는 다른 차원에 대한 투영과 함께 작동하여 시간 구성 요소를 캡처하므로 Linq에서 RX가 일반 LINQ의 대체 세트 인 것은 놀라운 일이 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top