问题标签 [disposable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 自定义 MedaTypeFormatter 导致 ObjectDisposedException
我有一个自定义格式化程序来支持我的网络调用,但是一个错误报告揭示了一个问题。我正在覆盖WriteToStreamAsync()
这样的方法:
根据这篇文章,问题在于该using
语句导致流关闭。解决方案是删除using
语句并使用显式Flush()
调用,但依赖 GC 处理StreamWriter
.
- 这是一个主要问题吗?
- 有没有更好(更“最佳实践”)的方式来做到这一点?
c# - 如何在 ViewModel 中正确处理 CancellationTokenSource?
通常,当您尝试在视图模型中执行异步任务时,代码如下所示(简化):
问题是这CancellationTokenSource
是一个IDisposable
. 这是否意味着我们只是将它放在一个using
块中,还是因为它存储在私有财产中,所以还有更多内容?
c# - 在 using 块中创建资源与在 using 块之外创建资源
例如,可以通过以下方式创建一次性资源的新实例:
以下编码风格有什么区别(如果有的话)?
第一种风格:
第二种风格:
如果我们不打算在 using 块之外的任何地方使用资源,那么第一种样式是不好的编码实践吗?
即使我们希望在 using 块之外使用资源,是否应该鼓励这种在 using 块之外使用一次性资源的愿望?
swift - 使用 RxSwift 触发的两个事件
嗨,我正在学习一些 RxSwift,我不明白为什么 makeLoginRequest 被调用两次......当登录正确时,我推送到另一个控制器,但 observable 仍然通知另一个事件,因此它推送两次下一个控制器。 .
在 viewModel 中,代码是这样的:
并在控制器中
任何人都可以解释发生了什么?
谢谢!
c# - 收集中的一次性物品是否应在恢复收集前处理掉?
我有课
我有课
用户多次订阅许多项目,然后他调用 Refresh() 从某个服务器重新加载项目(显然,他再次订阅了新项目)。所有旧订阅都会自动处理还是我应该实现这样的东西?
ruby-on-rails - 由于改革错误而无法运行 Rspec:“改革::Form:Class (NoMethodError) 的未定义方法‘特征’”
我只是想运行一些测试,我得到了这个错误:
它发生在/usr/local/bundle/gems/reform-2.2.3/lib/reform/form.rb:75
,form.rb 中的那一行是第一次使用 DSL 词feature
。当然,当我运行我的 rails 应用程序时不会发生这种情况,但只有当我运行 rspec 时才会发生这种情况。
它在改革使用的 Disposable gem 中定义。起初我认为问题出在旧版本的 rspec 上,但即使我更新到最新版本,问题仍然存在。阅读代码或文档并没有让我了解测试和应用程序运行之间不同的任何特定加载行为。
我使用的 gems 版本是:rspec-3.3.0、reform-2.2.3、disposable-0.3.2
有人有线索吗?
- 更新 -
删除整个测试框架(删除 RSpec 并删除所有相关文件)并再次安装后,我发现 RSpec 正在自行运行,但是当尝试在测试文件中加载我的环境时,它会因同样的错误而失败。
android - 如何在 Android 上的 RxJava 2.0 中处理 Disposable?
在下面的代码中,如果(未被调用)mSafeObserver.isDisposed();
总是返回空指针异常。isDatabaseEmpty == false
zipped.subscribe(mSafeObserver);
在 rxJava 1.0 中,这段代码是正确的:
如何检查我是否可以处置 Disposable?
c# - 用于 C++ 对象销毁的 C# 一次性模式
我遇到了微软提供的这种一次性模式的实现:https ://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx
假设我有一个与此 C# 类关联的 C++ 类,并且我想delete
在处置 C# 类时使用 C++ 对象以确保正确释放我的非托管资源。我添加了一个函数DestructNative(self)
,它基本上delete (CppObject*)self
对关联的 C++ 对象进行本机 C++ 调用。所以我的代码如下所示:
Dispose(false)
所以我的问题是,知道可以从不同的线程调用 C# 终结器,我是否需要在 C++ 对象的析构函数中提供同步,以确保从 C# 终结器调用时没有任何竞争条件?
附加问题
微软一次性模式坏了吗?似乎disposed
标志是一个简单的变量,如果从不同的线程调用终结器,则该变量不同步。
c# - C# 一次性变量的自我一次性(内联)声明
我简直不敢相信 C# 开发人员没有想到这一点。我不喜欢没有更好的方法来创建一次性变量,因为我们必须在块中声明它们:
对我来说,将行放在括号中并将声明放在代码前面,在视觉上是不愉快的(因为它提醒我要if {} else {}
阻止)。
那么,是否存在任何替代方法来创建内联自处置变量,例如:
?
rx-java - RxJava - 我可以绕过 onSuccess 并且只有 onError 选项吗?
我正在创建一个Disposable
:
在这种情况下,如果myObservableMethod()
返回成功,我无需再做任何事情,mySuccess()
空方法也是如此,并且无缘无故地存在。
我试过这个:
但我正在崩溃。
无论如何都可以在不需要 的情况下调用它onSuccess
?