在同一进程中创build的所有其他线程之后停止线程

在同一进程中创build的所有其他线程之后停止线程,第1张

概述在同一进程中创build的所有其他线程之后停止线程

我试图写一个库,任何进程可以用于日志logging。 我想在我的类中有一个专用的工作线程,通过某种机制(pipe道,TCP套接字,等等)将日志消息写入远程机器上的另一个进程,以便代码看起来像这样用于日志构造器这种方式是这样的:当日志logging服务器在远程机器上closures时,不会阻塞logging的线程停止执行):

public LogWriter() { queueWriter = new Thread(() => { while (messageQueued.WaitOne()) { Message message; while (messageQueue.TryDequeue(out message)) { bool successful = false; while (!successful) { try { _logger.PostMessage(message); successful = true; } catch { try { _logger = new Logger(); } catch { } } } } } }); queueWriter.Start(); }

所以如果你有一个应用程序,你可以像这样logging:

LogWriter logWriter = new LogWriter(); logWriter.DeBUG("This is an example of how you'd send a deBUG log to the writer. This message would get translated into a Message object,queued up,and the dedicated writer would be signaled to start writing queued messages.");

messageQueue是一个ConcurrentQueue<Message> 。我希望queueWriter总是在所有其他线程停止十秒后停止,这个线程在托pipe它的进程中显式创build,除了自己死掉以便给它一些时间来完成写入它的日志它的messageQueue ,但不阻止进程从closures(所以十秒后,如果还没有完成写所有的日志,我们不在乎,只是停止线程)。

笔记:

win32 API是否过时了?

.Net和Hadoop – 知道/学习什么和可用的?

有效字幕文本颜色 – 检测变化(在.Net中)

在C#中打印后台处理程序API设置标志?

是否有任何使用.NET的自动化testing示例源代码

使queueWriter成为后台线程还不够好。 当父线程死亡时,我不想杀死queueWriter ,因为它可能没有足够的时间来完成它的待处理日志的写入。

订阅Process.GetCurrentProcess().Exited也不够好。 queueWriter线程保持进程。

我希望它可以作为一个库来使用,而且我不希望开发人员在closures应用程序或进程后十秒钟之内手动发信号通知工作人员停止。 我只想跟踪工作线程以外的所有线程何时死亡,等待十秒钟,然后closures工作线程。

Process.GetCurrentProcess()。Threads.Count可能很方便,但是用它做一些testing,它给你所有的线程你的应用程序使用(如非托pipe线程,库线程,甚至线程,你还没有明确地创build自己,在您没有编写代码来明确地启动该线程的意义)。

那么这怎么做呢? 这甚至有可能吗?

所有用户都可以在同一台电脑上写入文件夹

如何创build防止“服务器模式SSL必须使用带有关联私钥的证书”exception的X509证书?

什么是.NET文件夹search层次结构?

扩展时重绘comboBox项目

SystemEvents.SessionSwitch用户被locking/解锁

你不能用线程来做到这一点。 尽管你可以用一个单独的过程来完成。

大概你添加队列,因为网络可能是缓慢和不可靠的。 但是,与同一台机器上的进程通信是快速,快速的同步通信。 而且你可以监视这个过程,如果死了就启动一个新过程。

总结

以上是内存溢出为你收集整理的在同一进程中创build的所有其他线程之后停止线程全部内容,希望文章能够帮你解决在同一进程中创build的所有其他线程之后停止线程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1284664.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存