Когда я создаю делегата, компиллятор автоматически создаёт в его классе методы BeginInvoke и EndInvoke. Где-то можно посмотреть описания этих методов в таком же виде, в каком я смотрю описания всех других методов? Проблема в том, что эти методы не содержатся в классе Delegate и его наследниках, а создаются конкретно под каждый делегат в моей программе, поэтому в доках они не представлены.
Конкретно, меня интересует, как пользоваться объектом типа IAsyncResult?
Я по наитию запоминаю этот объект, который возвращается BeginInvoke, а потом передаю его соответствующему EndInvoke. Но насколько это необходимо? Ведь я всё равно вызываю EndInvoke к конкретному экземпляру делегата и там внутри уже содержится вся необходимая информация. Зачем ещё передавать IAsyncResult?