private static void TryBowerInstall(this Document document, OutputWindowWriter windowWriter) { lock (bowerStartingLock) { if (!_bowerInstallRunning) { windowWriter.Show(); windowWriter.WriteLine("--- Bower install started ---"); System.Threading.Tasks.Task.Run(() => { try { NodePackageUtils.RunBowerInstall(document.Path, (sender, args) => windowWriter.WriteLine(args.Data), (sender, args) => windowWriter.WriteLine(args.Data) ); } catch (Exception e) { windowWriter.WriteLine(e.Message); } lock (bowerRunningLock) { _bowerInstallRunning = false; } windowWriter.WriteLine("--- Bower install complete ---"); }); lock (bowerRunningLock) { _bowerInstallRunning = true; } } } }
public static void TryBowerInstall(this Document document, OutputWindowWriter windowWriter) { lock (BowerStartingLock) { if (_bowerInstallRunning) { return; } windowWriter.Show(); windowWriter.WriteLine("--- Bower install started ---"); Task.Run(() => { try { NodePackageUtils.RunBowerInstall(document.Path, (sender, args) => { if (string.IsNullOrEmpty(args.Data)) { return; } string s = Regex.Replace(args.Data, @"[^\u0000-\u007F]", string.Empty); windowWriter.WriteLine(s); }, (sender, args) => { if (string.IsNullOrEmpty(args.Data)) { return; } string s = Regex.Replace(args.Data, @"[^\u0000-\u007F]", string.Empty); windowWriter.WriteLine(s); }); } catch (Exception e) { windowWriter.WriteLine(e.Message); } lock (BowerRunningLock) { _bowerInstallRunning = false; } windowWriter.WriteLine("--- Bower install complete ---"); }); lock (BowerRunningLock) { _bowerInstallRunning = true; } } }