解雇任务与背景无限任务

问题描述

我正在考虑这两个选项。 我不知道每秒调用多次Task.Run()的性能是否会较差,而是有信号灯的无限线程

1-火灾后忘记

...
Task.Run(async () =>
{ 
    //Do();
});

2-后台任务

我简化了代码,但想法是这样的,线程正在等待信号处理

启动线程

ctor()
{
    _thread = new Thread(WriteLog);
    _thread.Start();
}

排队并释放信号量

public long AddLog(Log aLog)
{
    _buffer.Enqueue(aLog);

    _sm.Release();
}

每次发布​​_sm时都要进行处理

private void WriteLog()
{    
    while (true)
    {
         try
         {
              // Wait release to write log
              _sm.Wait(Timeout.Infinite);
               
              var xBuffer = _buffer.Dequeue()
              // Do()
          }
          catch
          {
          }
      }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)