ConcurrentStringBuilder.cs 878 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright (c) .NET Foundation. All rights reserved.
  2. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
  3. using System.Text;
  4. namespace Cli.FunctionalTests.Util
  5. {
  6. public class ConcurrentStringBuilder
  7. {
  8. private StringBuilder _stringBuilder = new StringBuilder();
  9. private object _lock = new object();
  10. public void AppendLine()
  11. {
  12. lock (_lock)
  13. {
  14. _stringBuilder.AppendLine();
  15. }
  16. }
  17. public void AppendLine(string data)
  18. {
  19. lock (_lock)
  20. {
  21. _stringBuilder.AppendLine(data);
  22. }
  23. }
  24. public override string ToString()
  25. {
  26. lock (_lock)
  27. {
  28. return _stringBuilder.ToString();
  29. }
  30. }
  31. }
  32. }