-1
我在使用線程的WinFrm應用程序上出現錯誤。此代碼運行良好:Windows窗體線程錯誤
private void button1_Click(object sender, EventArgs e)
{
bool keepGoing = true;
Task.Factory.StartNew(()=>
{
while (keepGoing)
{
try
{
Thread.Sleep(500);
}
catch (Exception ex)
{
throw;
}
}
});
}
請注意事件處理程序中的布爾keepGoing變量。如果我把布爾keepGoing事件處理程序之外,並在循環內放置一個斷點Visual Studio將停止工作。
bool keepGoing = true;
private void button1_Click(object sender, EventArgs e)
{
Task.Factory.StartNew(()=>
{
while (keepGoing)
{
try
{
Thread.Sleep(500);
}
catch (Exception ex)
{
throw;
}
}
});
}
}
這是一個用10場和完整代碼VS2015和.net 4.52.Both實例運行,只有當你設置在while循環中的第二個例子是VS停止工作斷點。這是爲什麼發生?我試圖實現兩種代碼版本的運行方式完全相同 - 我的機器上的第二個版本存在問題,但我不知道它會是什麼。
你是什麼意思掛起?我已經嘗試了兩個例子,並在兩種情況下循環「繼續前進」。 – gabba
相同......不能重現任何掛起。 –
相同。我的代碼中有相同的結構。 – KDecker