定义代理:
delegate void AddLogHandler(string log);
定义调用函数:
private void AddLog(string log)
{
if (txtLog.IsDisposed) // 这里的txtLog为文本控件名称
{
return;
}
// 从ui线程去操作ui
if (txtLog.InvokeRequired)
{
txtLog.Invoke(new AddLogHandler(AddLog), log);
}
else
{
txtLog.AppendText($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}] {log}\r\n");
}
}
定义全局变量:
/// <summary>
/// 定时器
/// </summary>
private readonly Timer _timer = new Timer(1000)
{
AutoReset = true,
};
调用主调用代码:
// 定时输出线程池任务数
_timer.Elapsed += (_, args) =>
{
AddLog($"线程池当前在执行的任务数: {_threadPool.TaskCount}, 任务队列数: {_threadPool.QueueSize}");
};
_timer.Start();