C#暂停/终止/停止/中止线程

C#暂停/终止/停止/中止线程,c#,multithreading,C#,Multithreading,我知道有很多关于这方面的问题,但没有一个和我合作过。 所以问题是,我有一个线程正在读取一些MODBUS设备,我希望能够启动/停止读取。选择connect时,我启动线程;选择disconnect时,我中止线程。启动中止的线程时,我收到以下异常: System.Threading.ThreadStateException:线程已启动。 at(包装器管理到本机)System.Threading.Thread:Thread\u internal (System.Threading.Thread,Syst

我知道有很多关于这方面的问题,但没有一个和我合作过。 所以问题是,我有一个线程正在读取一些MODBUS设备,我希望能够启动/停止读取。选择connect时,我启动线程;选择disconnect时,我中止线程。启动中止的线程时,我收到以下异常:

System.Threading.ThreadStateException:线程已启动。 at(包装器管理到本机)System.Threading.Thread:Thread\u internal (System.Threading.Thread,System.MulticastDelegate) 在0中的System.Threading.Thread.Start()[0x00000]处 在/home/Vyshka/Main.cs:53中的Vyshka.MainClass.Main(System.String[]args)[0x00096]处


创建一个新线程。无法重新启动线程


顺便说一句,您应该(几乎)永远不要中止线程。有很多关于堆栈溢出的讨论,这将解释为什么这会使您的程序固有地中断。

通常中止线程从来都不是一个好主意,更不用说尝试重新启动中止的线程了-一旦线程中止,就无法从中恢复,因此您尝试执行的操作将不起作用。相反,每次生成一个新线程,让旧线程独立中止


或者,将登录名放在控制读取MODBUS设备的线程中,这样就根本不需要中止线程。

问题的最佳解决方案是将变量设为空,然后为其分配一个新指针。

一旦中止线程,就不能再启动它。在try-catch块中是否有这些语句?如何重新启动线程?我可以取消它并再次声明它吗?另外,线程变量是指针。