public LogUpdateRequest( string logFileName, LogContentsFetchedCallback logContentsFetchedCallback) { this.logFileName = logFileName; this.logContentsFetchedCallback = logContentsFetchedCallback; }
public void FetchLogContents(string logFileName, LogContentsFetchedCallback logContentsFetchedCallback) { lock (this) { // if the log file is already queued, but not yet in processing LogUpdateRequest existingRequest = queuedRequests.Find(r => String.Equals(r.LogFileName, logFileName, StringComparison.OrdinalIgnoreCase)); if (existingRequest != null) { // we ignore the new request, since the old one is already being processed } else { LogUpdateRequest logUpdateRequest = new LogUpdateRequest(logFileName, logContentsFetchedCallback); queuedRequests.Add(logUpdateRequest); CreateWorkerThread(logUpdateRequest); } } }