AvalonStudio.Extensibility.Threading.JobRunner.RunJobs C# (CSharp) Method

RunJobs() public method

Runs continuations pushed on the loop.
public RunJobs ( ) : void
return void
		public void RunJobs()
		{
			while (true)
			{
				Job job;

				lock (_queue)
				{
					if (_queue.Count == 0)
					{
						return;
					}

					job = _queue.Dequeue();
				}

				if (job.TaskCompletionSource == null)
				{
					job.Action();
				}
				else
				{
					try
					{
						job.Action();
						job.TaskCompletionSource.SetResult(null);
					}
					catch (Exception e)
					{
						job.TaskCompletionSource.SetException(e);
					}
				}
			}
		}