{"action":"created","issue":{"url":"https://api.github.com/repos/Reactive-Extensions/Rx.NET/issues/163","repository_url":"https://api.github.com/repos/Reactive-Extensions/Rx.NET","labels_url":"https://api.github.com/repos/Reactive-Extensions/Rx.NET/issues/163/labels{/name}","comments_url":"https://api.github.com/repos/Reactive-Extensions/Rx.NET/issues/163/comments","events_url":"https://api.github.com/repos/Reactive-Extensions/Rx.NET/issues/163/events","html_url":"https://github.com/Reactive-Extensions/Rx.NET/pull/163","id":134124964,"number":163,"title":"Added SafeDisposable","user":{"login":"Tuatan","id":5242190,"avatar_url":"https://avatars.githubusercontent.com/u/5242190?v=3","gravatar_id":"","url":"https://api.github.com/users/Tuatan","html_url":"https://github.com/Tuatan","followers_url":"https://api.github.com/users/Tuatan/followers","following_url":"https://api.github.com/users/Tuatan/following{/other_user}","gists_url":"https://api.github.com/users/Tuatan/gists{/gist_id}","starred_url":"https://api.github.com/users/Tuatan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tuatan/subscriptions","organizations_url":"https://api.github.com/users/Tuatan/orgs","repos_url":"https://api.github.com/users/Tuatan/repos","events_url":"https://api.github.com/users/Tuatan/events{/privacy}","received_events_url":"https://api.github.com/users/Tuatan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2016-02-16T23:21:04Z","updated_at":"2016-02-23T04:56:49Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Reactive-Extensions/Rx.NET/pulls/163","html_url":"https://github.com/Reactive-Extensions/Rx.NET/pull/163","diff_url":"https://github.com/Reactive-Extensions/Rx.NET/pull/163.diff","patch_url":"https://github.com/Reactive-Extensions/Rx.NET/pull/163.patch"},"body":"Some classes doesn't implement [IDisposable](https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx) correctly and their Dispose implementation might throw. "},"comment":{"url":"https://api.github.com/repos/Reactive-Extensions/Rx.NET/issues/comments/187530795","html_url":"https://github.com/Reactive-Extensions/Rx.NET/pull/163#issuecomment-187530795","issue_url":"https://api.github.com/repos/Reactive-Extensions/Rx.NET/issues/163","id":187530795,"user":{"login":"RxDave","id":8392258,"avatar_url":"https://avatars.githubusercontent.com/u/8392258?v=3","gravatar_id":"","url":"https://api.github.com/users/RxDave","html_url":"https://github.com/RxDave","followers_url":"https://api.github.com/users/RxDave/followers","following_url":"https://api.github.com/users/RxDave/following{/other_user}","gists_url":"https://api.github.com/users/RxDave/gists{/gist_id}","starred_url":"https://api.github.com/users/RxDave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RxDave/subscriptions","organizations_url":"https://api.github.com/users/RxDave/orgs","repos_url":"https://api.github.com/users/RxDave/repos","events_url":"https://api.github.com/users/RxDave/events{/privacy}","received_events_url":"https://api.github.com/users/RxDave/received_events","type":"User","site_admin":false},"created_at":"2016-02-23T04:56:49Z","updated_at":"2016-02-23T04:56:49Z","body":"It's true that `Task` throws on `Dispose` only in the case where disposing is an invalid operation, but it's not a great example of \"acceptable\" behavior given that, unlike most `IDisposable` implementations, the recommendation is to **not** dispose an instance of `Task` except in rare performance-related circumstances. (See http://blogs.msdn.com/b/pfxteam/archive/2012/03/25/10287435.aspx). The guideline that `Dispose` should never throw is still one that applies whenever it's recommended that calling `Dispose` is generally the right thing to do."}}