J'ai le code suivant dans une application WPF en utilisant Reactive Extensions pour .NET:utilisation de la mémoire 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));
});
}
aura-t-il une augmentation constante de la mémoire alors que la souris se déplace sur cette boîte de dialogue?
En lisant le code, je m'attendrais à ce que moveEvents observable contienne une énorme quantité de MouseEventArgs après un certain temps? Ou est-ce géré d'une manière intelligente que je ne connais pas?
Notez qu'un abonné ne reçoit que de nouveaux événements à partir après avoir souscrit, si les anciens événements ne sont pas gardé n'importe où. – Gabe