NetworkComms.Net was designed to be .Net2 backwards compatible so offers both synchronous and asynchronous options. The example you have provided is the synchronous interface so an await would be somewhat defeating here.
We have not yet come across any significant advantage in also supporting the more recent ‘await’ syntax.
Hello, for using NetworkComms.SendReceive in async/await aware code you are encouraged to do the following:
string result = await Task.Run(() => NetworkComms.SendReceive(...));
This will give you “offloading” mainly for the UI by moving the blocking call into a separate task, however you still won’t benefit from “scalability” since NetworkComms was internally designed for .NET 2.0 as explained.
For other constructions have in mind that NetworkComms uses the EAP (Event-based Asynchronous Pattern). You can refer to the MSDN for how to wrap this pattern into the TAP (Task-based Asynchronous Pattern).