Hello,
In my program I am trying to implement a try catch with a timeout, where if the code does not execute within a certain amount of time the catch is called. From what I understand, this can be done using task to run a time and running it asynchronously with the try function. I have read through this blog post on crafting a timeout method and also read through the documentation for tasks.
Blog post: https://blogs.msdn.microsoft.com/pfxteam/2011/11/10/crafting-a-task-timeoutafter-method/
I understand the concept of tasks and async but I think I am getting stuck on the implementation of a where to put what code. Below is the code I am using to get the IP address. My question is: where is the best place to create the task? Should the task be its own method? Class?
public MainPage()
{
this.InitializeComponent();
//Gets the ip address and displays it on the about page
IPAdressTextBlock.Text = GetLocalIp();
}
//Gets the IP address assigned by the router
private string GetLocalIp()
{
try
{
var icp = NetworkInformation.GetInternetConnectionProfile();
if (icp?.NetworkAdapter == null) return null;
var hostname = NetworkInformation.GetHostNames().SingleOrDefault(hn => hn.IPInformation?.NetworkAdapter != null && hn.IPInformation.NetworkAdapter.NetworkAdapterId == icp.NetworkAdapter.NetworkAdapterId);
// the ip address
return hostname?.CanonicalName;
} catch
{
return "Network not found.";
}
}