[英]How can I stop a thread in C#?
我已經創建了一個客戶端服務器應用程序,並且希望在服務器上有機會停止該服務器,然后再次啟動它。 問題是我無法停止偵聽Tcp Connections的線程。
如何在C#中關閉線程?
謝謝。
private void KeepServer(){
while (this.connected)
{
tcpClient = tls.AcceptTcpClient();
Connection newConnection = new Connection(tcpClient);
}
}
您的問題有點籠統,但是,我認為這可以幫助您:
我粘貼了一部分:
停止線程
通常,啟動線程后,它將一直運行到完成為止。 但是,可以通過調用Abort()方法來停止線程。 在我們的示例中,如果要停止firstThread,則應添加以下代碼。
在Suite101上了解更多信息:如何在C#中創建,停止和掛起線程。 Suite101.com http://www.suite101.com/article.cfm/c_sharp/96436#ixzz0ZsZRRjKx
編碼愉快!
您應該使用布爾值或條件來停止線程。 然后,您可以使用屬性來更改此布爾值的“標志”,並且線程的循環將結束。 這是正確的方法。 當然,您可以在線程上使用Abort(),但是不建議這樣做,它會引發您需要處理的異常。
可能是從Thread.Abort外部獲取的,有一種方法可以暫停。 但這是不正確的方式...
您應該只結束要殺死的代碼,到達最后一個}。 為了暫停,您應該使用Mutex。 操作的方式應該是,您命令該對象暫停,並且在完成當前請求后,該對象將在下一個對象之前被互斥體暫停。 或只是為了“殺死”而走出一步。
順便說一句,MSDN上有一篇不錯的文章介紹了常見的線程方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.