如何解决解雇任务与背景无限任务
我正在考虑这两个选项。 我不知道每秒调用多次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 举报,一经查实,本站将立刻删除。