Dostęp do usuwanych zamknięć - metody oznaczania jako bezpieczne

Chodzi o ostrzeżenie ReSharpera „Dostęp do rozmieszczonego zamknięcia”, które zwykle pojawia się, gdy obiekt, który jest później usuwany, jest używany w lambdzie.Dostęp do usuniętego zamknięcia w C #? omawia to bardziej szczegółowo.

Moje pytanie brzmi: W przypadku metod, które pobierają takie lamdby i wykonują je natychmiast (aby mieć pewność, że są one zawsze wykonywane przed usunięciem tego obiektu):

Czy istnieje sposób oznaczenia ich jako bezpiecznych, aby każdy kod korzystający z tej metody nie tworzył już tych ostrzeżeń?

Przykład:

using (var myObject = new MyDisposableObject())
{
    DoThisTwice(() => myObject.DoSomething());
}

...

void DoThisTwice(Action do)
{
    do();
    do();
}

DoThisTwice pobiera delegata (lub lambda) i wykonuje go synchronicznie. Do czasu powrotu metody lambda nie będzie już wykonywana. Tylko wtedymyObject jest usunięty, więc dobrze jest iść. Możemy oznaczyć wywołanie liniiDoThisTwice z komentarzem, ale należy to zrobić we wszystkich miejscach, używając metody w podobny sposób. Zamiast tego chciałbym zaznaczyćDoThisTwice tak bezpieczny, że Resharper nie wyświetla żadnych ostrzeżeń dla osób wywołujących metodę.

questionAnswers(1)

yourAnswerToTheQuestion