// creates a list of all local files (async) private void AnalyzeNewVersion(DelegateTransfer callback) { try { // call GetLocalFiles method async var caller = new GetLocalFilesAsync(GetLocalFiles); caller.BeginInvoke(ulLocalPath, delegate(IAsyncResult iar) { var c = (GetLocalFilesAsync)iar.AsyncState; ulLocalFiles = caller.EndInvoke(iar); callback(ulLocalFiles != null); }, caller); } catch (Exception e) { ErrorLog.Add(this, e.Message); callback(false); } }