gpt4 book ai didi

c# - react 性扩展内存使用

转载 作者:行者123 更新时间:2023-11-30 15:10:39 24 4
gpt4 key购买 nike

我在 WPF 应用程序中有以下代码,使用了 .NET 的 Reactive Extensions:

public MainWindow()
{
InitializeComponent();

var leftButtonDown = Observable.FromEvent<MouseButtonEventArgs>(this, "MouseLeftButtonDown");
var leftButtonUp = Observable.FromEvent<MouseButtonEventArgs>(this, "MouseLeftButtonUp");

var moveEvents = Observable.FromEvent<MouseEventArgs>(this, "MouseMove")
.SkipUntil(leftButtonDown)
.SkipUntil(leftButtonUp)
.Repeat()
.Select(t => t.EventArgs.GetPosition(this));

moveEvents.Subscribe(point =>
{
textBox1.Text = string.Format(string.Format("X: {0}, Y: {1}", point.X, point.Y));
});
}

当鼠标在这个对话框上移动时,内存会稳定增加吗?

阅读代码,我预计 moveEvents observable 会在一段时间后包含大量的 MouseEventArgs?或者这是否以我不知道的某种聪明方式处理?

最佳答案

不,内存使用量不应该稳定增加 - 为什么会这样?事件基本上流式传输给订阅者;它们不会在任何地方被缓冲。

Rx 的要点是事件被推送给订阅者,订阅者可以选择如何处理它们。这不像将事件添加到稍后检查的列表。

(在 Rx 中有缓冲事件的方法,但据我所知你没有使用它们。)

关于c# - react 性扩展内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3040529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com