Je reçois cet avertissement ("Implicity capturé la fermeture: ceci") de Resharper: cela signifie-t-il que ce code capture en quelque sorte l'intégralité de l'objet englobant?
internal Timer Timeout = new Timer
{
Enabled = false,
AutoReset = false
};
public Task<Response> ResponseTask
{
get
{
var tcs = new TaskCompletionSource<Response>();
Timeout.Elapsed += (e, a) => tcs.SetException(new TimeoutException("Timeout at " + a.SignalTime));
if (_response != null) tcs.SetResult(_response);
else ResponseHandler += r => tcs.SetResult(_response);
return tcs.Task;
}
}
Je ne sais pas comment ni pourquoi cela se produit - la seule variable à capturer est la TaskCompletionSource, qui est intentionnelle. Est-ce réellement un problème et comment pourrais-je m'y prendre si c'est le cas?
EDIT: l'avertissement est sur le premier lambda (l'événement Timeout).