У меня есть следующий код в приложении WPF с помощью Reactive Extensions для .NET:Реактивные расширения использования памяти
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 будет содержать огромное количество MouseEventArgs через некоторое время? Или это обрабатывается каким-то умным способом, о котором я не знаю?
Обратите внимание, что абонент получает только новые события с после того, как он выписывает, поэтому старые события не являются где угодно. – Gabe