Ваш пример кода выглядит нормально для меня, хотя использование оператора Take(1)
приведет только к перехвату только первого события, после которого поток завершится, и вы не получите никаких дополнительных уведомлений. Вы намерены слушать только одно уведомление о событии?
Возможно, удаление Take (1) даст вам правильное поведение?
private void UpdateList(Client client)
{
var listUpdateReceive = Observable
.FromEvent<ListEventArgs>(ev => client.ListUpdateReceive += ev, ev => client.ListUpdateReceive -= ev);
listUpdateReceive.Subscribe(r =>
{
TraceInformation("List is updated.");
OnListUpdateReceived(r.Sender, r.EventArgs);
});
}