Ejemplo n.º 1
0
 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);
                }
            }
        }