Как настроить переменные, которые фиксирует лямбда-выражение в Vala?

Как захватитьthis только слабо в анонимной функции?

Я не смог найти в документации ничего относительно того, можно ли (или как) изменить параметры, захваченные анонимной функцией / лямбда-выражением. Проблема в том, что эти функции, кажется, захватывают все переменные из стекового фрейма, в котором они созданы, по крайней мере по умолчанию. В частности, они всегда захватываютthis, что проблематично при использовании их для обработчиков сигналов, потому что обработчики превращаются в жесткие ссылки наthis затем, вероятно, вызывая референсные циклы.

Есть ли у Vala какой-то механизм, как предотвратить лямбды от жестких ссылокthis? В настоящее время я создаю новый класс для каждого обработчика сигнала, напримерA.Handlerгде я только держу слабую ссылку на фактическуюthis изA на который мне нужно ссылаться из обработчика, но я думаю, что это подрывает преимущества лямбда-выражений.

Ответы на вопрос(1)

Ваш ответ на вопрос