---
title: "Reactive Extensions - Muhammad Rehan Saeed"
description: "Blog posts authored by Muhammad Rehan Saeed about Reactive Extensions."
canonical_url: "https://rehansaeed.com/tag/reactive-extensions/"
meta:
  author: "Muhammad Rehan Saeed"
  "og:description": "Blog posts authored by Muhammad Rehan Saeed about Reactive Extensions."
  "og:image": "https://rehansaeed.com/_og/s/o_eeb1152fb22ebbc7.png"
  "og:image:alt": "# Reactive Extensions - Muhammad Rehan Saeed"
  "og:image:height": "630"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "Reactive Extensions"
  "twitter:image": "https://rehansaeed.com/_og/s/o_eeb1152fb22ebbc7.png"
  "twitter:image:alt": "# Reactive Extensions - Muhammad Rehan Saeed"
---

> Index of every page on this site: [llms.txt](https://rehansaeed.com/llms.txt)

# [# Reactive Extensions](https://rehansaeed.com/tag/reactive-extensions/)

## [Reactive Extensions (Rx) - Part 8 - Timeouts](https://rehansaeed.com/reactive-extensions-rx-part-8-timeouts/)

Should you use Reactive Extensions (Rx) to do timeouts in .NET? It turns out it's better to use CancellationTokenSource in the Task Parallel Library (TPL).

Posted 2 January 2017 - **1 min read**

## [Reactive Extensions (Rx) - Part 7 - Sample Events](https://rehansaeed.com/reactive-extensions-part7-sample-events/)

Shows how to use the Reactive Extensions (Rx) Sample method to reduce the number of subscribed events by taking a sample from them over a given time period.

Posted 24 December 2014 - **2 min read**

## [Model-View-ViewModel (MVVM) - Part 2 - IDisposable](https://rehansaeed.com/model-view-viewmodel-mvvm-part2-idisposable/)

Implementing IDisposable correctly is ridiculously hard. A Disposable base class can make it easier. Using IDisposable in Model-View-ViewModel (MVVM) really helps.

Posted 13 June 2014 - **4 min read**

## [Reactive Extensions (Rx) - Part 6 - Task ToObservable](https://rehansaeed.com/reactive-extensions-part6-task-toobservable/)

How and where to use the Reactive Extensions (Rx) ToObservable Extension method to turn a Task Parallel Library (TPL) Task into an IObservable.

Posted 25 April 2014 - **5 min read**

## [Reactive Extensions (Rx) - Part 4 - Replacing Timers](https://rehansaeed.com/reactive-extensions-part4-replacing-timers/)

You should definitely consider using Reactive Extensions (Rx) is as a direct replacement for .NET Timers. This post will explain how.

Posted 11 March 2014 - **3 min read**

## [Reactive Extensions (Rx) - Part 3 - Naming Conventions](https://rehansaeed.com/reactive-extensions-part3-naming-conventions/)

Reactive Extensions (Rx) Advantages of using IObservable property naming conventions and comparison between C# events.

Posted 14 February 2014 - **2 min read**

## [Reactive Extensions (Rx) - Part 2 - Wrapping C# Events](https://rehansaeed.com/reactive-extensions-part2-wrapping-events/)

Reactive Extensions IObservable wrappers for C# events and hiding the C# events entirely from subscribers using explicit interface implementations.

Posted 13 February 2014 - **3 min read**

## [Reactive Extensions (Rx) - Part 1 - Replacing C# Events](https://rehansaeed.com/reactive-extensions-part1-replacing-events/)

You should definitely consider using Reactive Extensions (Rx) is as a direct replacement for C# events. This post will explain how.

Posted 11 February 2014 - **4 min read**

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://rehansaeed.com/#website","@type":"WebSite","description":"Software Developer at Microsoft, YouTuber, Open Source Contributor and Blogger","inLanguage":"en-GB","name":"Muhammad Rehan Saeed","url":"https://rehansaeed.com/","author":{"@id":"https://rehansaeed.com/#identity"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://rehansaeed.com/?search={search_term_string}"},"query-input":"required name=search_term_string"}],"publisher":{"@id":"https://rehansaeed.com/#publisher"}},{"@id":"https://rehansaeed.com/tag/reactive-extensions/#webpage","description":"Blog posts authored by Muhammad Rehan Saeed about Reactive Extensions.","name":"Reactive Extensions","url":"https://rehansaeed.com/tag/reactive-extensions/","@type":["WebPage","CollectionPage"],"breadcrumb":{"@id":"https://rehansaeed.com/tag/reactive-extensions/#breadcrumb"},"isPartOf":{"@id":"https://rehansaeed.com/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://rehansaeed.com/tag/reactive-extensions/"]}]},{"@id":"https://rehansaeed.com/#identity","@type":"Person","name":"Muhammad Rehan Saeed","url":"https://rehansaeed.com/about/","image":{"@id":"https://rehansaeed.com/#/schema/image/1"},"sameAs":["https://github.com/RehanSaeed","https://www.linkedin.com/in/muhammad-rehan-saeed","https://stackoverflow.com/users/1212017/muhammad-rehan-saeed","https://www.youtube.com/c/MuhammadRehanSaeed","https://www.twitch.tv/rehansaeeduk"]},{"@id":"https://rehansaeed.com/#publisher","@type":"Organization","logo":"https://rehansaeed.com/images/schema/Publisher-600x60.png","name":"Muhammad Rehan Saeed","url":"https://rehansaeed.com"},{"@id":"https://rehansaeed.com/tag/reactive-extensions/#/schema/item-list/1","@type":"ItemList","itemListElement":[{"@type":"ListItem","name":"Reactive Extensions (Rx) - Part 8 - Timeouts","url":"https://rehansaeed.com/reactive-extensions-rx-part-8-timeouts/","position":1},{"@type":"ListItem","name":"Reactive Extensions (Rx) - Part 7 - Sample Events","url":"https://rehansaeed.com/reactive-extensions-part7-sample-events/","position":2},{"@type":"ListItem","name":"Model-View-ViewModel (MVVM) - Part 2 - IDisposable","url":"https://rehansaeed.com/model-view-viewmodel-mvvm-part2-idisposable/","position":3},{"@type":"ListItem","name":"Reactive Extensions (Rx) - Part 6 - Task ToObservable","url":"https://rehansaeed.com/reactive-extensions-part6-task-toobservable/","position":4},{"@type":"ListItem","name":"Reactive Extensions (Rx) - Part 4 - Replacing Timers","url":"https://rehansaeed.com/reactive-extensions-part4-replacing-timers/","position":5},{"@type":"ListItem","name":"Reactive Extensions (Rx) - Part 3 - Naming Conventions","url":"https://rehansaeed.com/reactive-extensions-part3-naming-conventions/","position":6},{"@type":"ListItem","name":"Reactive Extensions (Rx) - Part 2 - Wrapping C# Events","url":"https://rehansaeed.com/reactive-extensions-part2-wrapping-events/","position":7},{"@type":"ListItem","name":"Reactive Extensions (Rx) - Part 1 - Replacing C# Events","url":"https://rehansaeed.com/reactive-extensions-part1-replacing-events/","position":8}]},{"@id":"https://rehansaeed.com/tag/reactive-extensions/#breadcrumb","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","name":"Blog","item":"https://rehansaeed.com/","position":1},{"@type":"ListItem","name":"Reactive Extensions","item":"https://rehansaeed.com/tag/reactive-extensions/","position":2}]},{"@id":"https://rehansaeed.com/#/schema/image/1","@type":"ImageObject","contentUrl":"https://rehansaeed.com/images/author/Muhammad-Rehan-Saeed/Logo-512x512.png","inLanguage":"en-GB","url":"https://rehansaeed.com/images/author/Muhammad-Rehan-Saeed/Logo-512x512.png"}]}
```

## Sitemap

See the full [sitemap](https://rehansaeed.com/sitemap.md) for all pages.
