我无法在应用程序退出时正确处理使用 RX 创建的线程。我在 Process Explorer 中看到应用程序关闭后,线程仍在运行,导致 IO 异常。
class Program
{
static void Main(string[] args)
{
CompositeDisposable subsriptions = new CompositeDisposable();
subscriptions.Add(Observable.Interval(TimeSpan.FromSeconds(15))
.Subscribe(_ =>
{
getData();
}));
Thread.Sleep(TimeSpan.FromSeconds(20));
subscriptions.Dispose();
}
}
}
如果您看到我是否取消对 subscription.Dispose() 的注释,线程将终止而不会获取任何数据。任何帮助,将不胜感激。谢谢
最佳答案
subsriptions.Add(...)
和 subscriptions.Dispose()
之间需要某种延迟。两者之间没有延迟,您的应用程序只是简单地订阅并立即处理它们,没有时间让线程完成它们的工作。 (而且 Thread.Sleep(1000)
不起作用,因为它在订阅函数内部,而不是主函数的一部分。)
关于c# - 在应用程序退出时处理 RX 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17864316/