earlier I coded a quick console worker that runs a timer every 1 second and updates the consoles timer with how long the app has been open, how can I improve this?
using Faze.Other.App;
using log4net;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Faze.Other.Util.Console
{
class ConsoleWorker : IDisposable
{
/// <summary>
/// Holds an instance of Timer.
/// </summary>
private Timer consoleWorkerTimer;
/// <summary>
/// Interval of the ConsoleWorker timer.
/// </summary>
private int consoleWorkerInterval = 1000;
/// <summary>
/// Holds an instance of ILog.
/// </summary>
private ILog classLogger;
/// <summary>
/// Initializes a new instance of ConsoleWorker.
/// </summary>
public ConsoleWorker()
{
if (StaticSettings.includeSecondsInUptimeString && consoleWorkerInterval < 1000)
consoleWorkerInterval = 1000;
classLogger = LogManager.GetLogger(typeof(ConsoleWorker));
consoleWorkerTimer = new Timer(new TimerCallback(timerElapsed), null, TimeSpan.FromMilliseconds(consoleWorkerInterval), TimeSpan.FromMilliseconds(consoleWorkerInterval));
}
/// <summary>
/// Starts the worker (timer) process.
/// </summary>
public void startWorker()
{
// I'll leave this for now..
}
/// <summary>
/// Handles the timers callback once elapsed.
/// </summary>
/// <param name="timerObject">ConsoleWorker timer's object.</param>
private void timerElapsed(object timerObject)
{
if (Faze.getServer().getServerInformation().hasStarted())
{
if (StaticSettings.advancedLoggingWhenDebugging && Debugger.IsAttached)
classLogger.Info("ConsoleWorker has elapsed -> " + DateTime.Now.ToLongTimeString());
TimeSpan serverUptime = DateTime.Now - Faze.getServer().getServerInformation().getStartedTime();
string consoleTitleString = string.Empty;
if (StaticSettings.includeSecondsInUptimeString)
{
consoleTitleString = Faze.getServer().getServerInformation().getProjectName() + " / " + serverUptime.Days + " day" + (serverUptime.Days != 1 ? "s" : "")
+ ", " + serverUptime.Hours + " hour" + (serverUptime.Hours != 1 ? "s" : "") + ", " +
serverUptime.Minutes + " minute" + (serverUptime.Minutes != 1 ? "s" : "") + " and " + serverUptime.Seconds + " second" + (serverUptime.Seconds != 1 ? "s" : "");
}
else
{
consoleTitleString = Faze.getServer().getServerInformation().getProjectName() + " / " + serverUptime.Days + " day" + (serverUptime.Days != 1 ? "s" : "")
+ ", " + serverUptime.Hours + " hour" + (serverUptime.Hours != 1 ? "s" : "") + " and " +
serverUptime.Minutes + " minute" + (serverUptime.Minutes != 1 ? "s" : "");
}
System.Console.Title = consoleTitleString;
}
}
public void Dispose()
{
consoleWorkerTimer.Dispose();
}
}
}
String.Format
and/or Interpolation? --> codereview.stackexchange.com/a/109061/18427 \$\endgroup\$ – Malachi♦ Jul 5 '16 at 19:30