private async Task StartEncodeFileAsync(MediaEncoderSettings settings) {
ProcessingQueue.Add(Path.GetFileNameWithoutExtension(settings.FileName));
EncodingCompletedEventArgs EncodingResult;
if (EncoderTask == null)
EncoderTask = Task.Run(() => EncodeFileThread(settings));
else
EncoderTask = EncoderTask.ContinueWith((prevTask) => EncodeFileThread(settings));
EncodingResult = await EncoderTask;
ProcessingQueue.RemoveAt(0);
if (EncodingResult != null && EncodingCompleted != null)
EncodingCompleted(this, EncodingResult);
}