/// <summary>
 /// Constructor: Instantiates and Starts the thread 
 /// </summary>
 /// <param name="BasicProgramData"></param>
 private DataComms(Grucox.DataManager.UserSessionData BasicProgramData)
 {
     basicProgramData = BasicProgramData;
     ThreadStart ThreadStartPoint = new ThreadStart(TryPerformDataUpload);
     thread1 = new Thread(ThreadStartPoint);
     Start();
 }
 /// <summary>
 /// Static Function: Called from the main program to pass the required parameters
 /// and create an instance of the tread object
 /// </summary>
 /// <param name="BasicProgramData"></param>
 public static void CreateThreadInstance(Grucox.DataManager.UserSessionData BasicProgramData)
 {
     DataComms dataComms = new DataComms(BasicProgramData);
 }