Вы добавляете обработчики событий при каждом нажатии кнопки, а не удаляете их.
hl.Completed += (_sender, _e) =>
{
};
в обоих обработчиках кнопок. Это приведет к потере ресурсов и означает, что вы вызываете код несколько раз при каждом нажатии кнопки.
Решение состоит в том, чтобы либо переместить обработчик, настроенный , за пределы , когда кнопка нажимает, либо удалить обработчик, когда вы это сделали. В последнем случае вам придется переместить код обработчика событий в отдельный метод, чтобы вы могли сделать это:
hl.Completed += MyEventHandler;
Тогда:
private void MyEventHandler(object sender, EventArgs e)
{
// Do stuff
hl.Completed -= MyEventHandler;
}
Хотя это означает, что hl
должен быть видимым для обоих методов.