유용성을 증명하는 .NET 예제를위한 반응성 프레임 워크 [폐쇄
-
20-09-2019 - |
문제
새로운 것에 대한 과대 광고가있었습니다 반응성 프레임 워크 .NET 4.0에서. 나는 기본 개념을 표지했다고 생각하지만 그것이 완전히 팔리지 않았다는 것이 유용하다고 생각합니다. RX의 힘과 유용성을 완전히 보여주는 좋은 모범을 얻을 수 있습니까? RX로 끝날 때 인생이 훨씬 쉬워지는 것을 보여주십시오.
해결책
다음은 빠른 예입니다. LINQ에 이벤트를 사용하여 완전히 선언적인 방식으로 드래그 작업을 프로그래밍하십시오.
//Create an observable with the initial position and dragged points using LINQ to Events
var mouseDragPoints = from md in e.GetMouseDown()
let startpos=md.EventArgs.GetPosition(e)
from mm in e.GetMouseMove().Until(e.GetMouseUp())
select new
{
StartPos = startpos,
CurrentPos = mm.EventArgs.GetPosition(e),
};
STARTPOS에서 현재 POS로 선을 그립니다
//Subscribe and draw a line from start position to current position
mouseDragPoints.Subscribe
(item =>
{
//Draw a line from item.Startpos to item.CurrentPos
}
);
보시다시피, 모든 곳에서는 이벤트 핸들러가없고 주 관리를위한 부울 변수가 없습니다.
그 geteventName () 메소드에 대해 궁금한 점이 있다면이 기사 전체를 읽고 소스 코드를 다운로드하여 재생하도록 제안하십시오.
다른 팁
최근에 내 블로그에 데모 단계별로 데모를 썼습니다. http://blog.andrei.rinea.ro/2013/06/01/bing-in-reactive-extensions-code-and-slides/
기본적으로 RX 및 Bing 검색으로 WPF에서 작은 앱을 구축합니다.
앱은 입력을 중지하고 비동기 검색을 수행하고 결과를 제시 할 때까지 대기합니다. 결과가 오기 전에 다른 검색을 발행하면 기존 검색이 자동으로 삭제됩니다.
Enter 또는 "Go!"를 눌러 검색을 강제로 대기 시간을 건너 뛸 수 있습니다. 버튼과 클리어 버튼을 눌러 진행중인 검색을 중지 할 수 있습니다. 바쁜 표시기와 일부 오류 처리가 있습니다 (예를 들어 네트워크가 줄어든 경우).
다루는 주요 주제 :
- 이벤트에서 관찰 가능한 생성 (TextChanged, Button.Click 등)
- 비동기 대의원 (비동기 검색)
- TakeUntil 확장
- ConstruntImchanged Extension (Custom Equals 포함)
- 연장을 병합하십시오
- 스로틀 확장
- ObserveOn Extension (UI 스레드 동기화)
.. 그리고 더!