public bool TryGetImage(Info info, out RendererResult?result) { result = null; var filePath = Path.Combine(CacheDirectory, info.GetFileName()); try { mutex.WaitOne(); var filePathTxt = filePath + ".txt"; var filePathPng = filePath + ".png"; if (!File.Exists(filePathTxt) || !File.Exists(filePathPng)) { return(false); } if (info.ToString() != File.ReadAllText(filePathTxt)) { return(false); //hash conflict } var source = ResourcesManager.CreateBitmapSourceWithCurrentDpi(filePathPng); result = new RendererResult(source, filePathPng, Array.Empty <string>()); return(true); } finally { mutex.ReleaseMutex(); } }
#pragma warning disable VSTHRD100 // Avoid async void methods private async void ImageIsReady(RendererResult result) { await Microsoft.VisualStudio.Shell.ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); RenderedResult = result; if (CurrentState == TeXCommentAdornmentState.Rendering) { CurrentState = TeXCommentAdornmentState.Rendered; } else if (CurrentState == TeXCommentAdornmentState.EditingAndRenderingPreview) { CurrentState = TeXCommentAdornmentState.EditingWithPreview; } }