Use Begin/End pattern to not break .Net 4 compatibility.

Are `AsyncCallback callback` and `object state` required if we're only going to pass in `null`?