代碼:
private void btnStart_Click(object sender,EventArgs e)
{
Thread threadWork=new Thread(new ThreadStart(this.ReturnState));
threadWork.start();
threadWork.IsBackground=true;

}
public void ReturnState()
{
while (true)
{
Thread.sleep(1);
if( )
.........
}
}
uj5u.com熱心網友回復:
1.threadWork.start();threadWork.IsBackground=true;這倆調換一下位置
2.點擊按鈕開辟執行緒 沒有停止執行緒的地方 執行緒越來越多 檢查執行緒內部 是不是有泄漏的地方導致記憶體溢位 或者執行緒內部有操作界面控制元件的地方 執行緒開多了之后就導致界面卡死 也就是未回應
uj5u.com熱心網友回復:
執行緒內使用while(true)是否有影響?uj5u.com熱心網友回復:
首先查看下日志,具體原因是什么sleep(1)改成sleep(1000)
uj5u.com熱心網友回復:
一般是執行緒內部問題,要看執行緒代碼uj5u.com熱心網友回復:
我寧可使用基于執行緒的timer也不回使用while(true),目測是if陳述句里的邏輯問題uj5u.com熱心網友回復:
目測IF里寫的代碼導致uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
無需要長期監控,執行緒不做關閉,怎么操作呢uj5u.com熱心網友回復:
執行緒中每個執行方法前面給一個int變數賦值,然后一直列印這個變數的值,觀察走到那一步卡住了轉載請註明出處,本文鏈接:https://www.uj5u.com/net/92045.html
標籤:C#
上一篇:請大佬看看
