C#线程之间的通信

GT.*_*GT. 9 c# multithreading

我正在使用.NET 3.5,并试图解决一个问题(不是我的最高线程专家熊).

我有一个Windows服务,它有一个非常密集的进程,一直在运行,我把这个进程放在一个单独的线程上,以便我的服务的主线程可以处理操作任务 - 即服务审计周期,处理配置更改等,等等

我通过典型的ThreadStart启动线程到一个关闭进程的方法 - 称之为workerthread.

在这个workerthread我发送数据到另一台服务器,正如预期的那样,服务器不时重新启动并且连接丢失,我需要重新建立连接(我通过事件丢失连接通知我).从这里我做了我的重新连接逻辑,我重新开始运行,但是我很容易开始注意到的事情是我每次都在反复创建这个工作线程(不是我想要的).

现在,当我失去连接并启动一个新连接时,我可以杀死它,但这似乎是浪费资源.

我真正想做的是,将调用(即我的线程启动方法)编组回到仍在内存中的线程,尽管没有做任何事情.

请发布您有用的任何示例或文档.

谢谢.

Rob*_*vey 1

无论如何我都会杀死(但如果可能的话优雅地结束)工作线程。一切都会被垃圾收集,您可以从头开始。

该服务器重新启动的频率是多少?如果这种情况发生的频率足以导致资源成为问题,那么它可能发生得太频繁了。