问题描述
我正在考虑这两个选项。 我不知道每秒调用多次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 (将#修改为@)