2012-09-28 78 views
0

我開始一個線程,運行一些文件的例行任務,不幸的是,在該線程內調用Thread.Sleep回調掛斷Windows指定的時間,即。我的光標凍結並且CTRL + ALT + DEL也不做任何事情。我如何特別「睡覺」後臺線程而不掛斷用戶界面?Thread.Sleep內部線程回調掛起Windows

我使用創建線程這樣的:

createThread = new Thread(new ThreadStart(this.createFileExec)); 
createThread.Start(); 

而且我的回調是這樣的:

private void createFileExec() { 
     .... 
     Thread.Sleep(100); 
     .... 
    } 
+0

你可以顯示其餘的方法代碼? – Tudor

+0

等待你的意思是你的整個操作系統被凍結或只是應用程序窗口? – Tudor

+0

這一切看起來不錯..你確定它是使它的線程?該線程可能調用一個掛起在循環中的委託? – James

回答

2

我如何明確「睡眠」後臺線程不掛斷UI?

這就是您在新線程上撥打Thread.Sleep所做的。你確定你沒有從主線程調用createFileExec嗎?

0

James是對的,UI沒有理由掛起。

可以嘗試的快速入門是使用循環代替Thread.Sleep。

for (int i = 1; i <= 10000; i++) 
{ 
     Console.WriteLine("."); //To know that the thread is asleep. 
}