public Task <List <MeetingRecord> > GetMeetingRecords() { List <MeetingRecord> meetingRecords = new List <MeetingRecord>(); if (!_meetingManager.IsServierStarted) { return(Task.FromResult(meetingRecords)); } var tcs = new TaskCallback <List <MeetingRecord> >("GetMeetingRecords"); if (_meetingManager.TaskCallbacks.ContainsKey(tcs.Name)) { _meetingManager.TaskCallbacks.Remove(tcs.Name); } _meetingManager.TaskCallbacks.Add(tcs.Name, tcs); int result = MeetingAgent.GetMeetingList(); if (result != 0) { return(Task.FromResult(meetingRecords)); } return(tcs.Task); }