Я получаю это предупреждение ( "Implicity capture closed: this" ) от Resharper: означает ли это, что каким-то образом этот код захватывает весь закрытый объект?
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;
}
}
Я не уверен, как и почему он это делает - единственной переменной, которую он должен захватывать, является TaskCompletionSource, который является намеренным. Это действительно проблема и как я могу решить ее, если это так?
EDIT: предупреждение находится на первой лямбда (событие ожидания).