In steps 1 to 14, we created a new blank solution and added a .NET Standard 2.0 class library. Then we gave the default template class a proper name. In step 15, we added the using directive required for threading support, which is System.Threading, and we have used the System.Text namespace to get the StringBuilder class to store our messages.
We have used StringBuilder over String. If you are wondering why, it is because StringBuilder is mutable. When you perform operations such as insert, replace, or append, a StringBuilder object doesn't create a new instance every time. It will update one space in the memory without creating a new space in the memory. However, String is immutable, which means that if you create a String ...