看板 C_Sharp 關於我們 聯絡資訊
在執行我的程式時,不定時會發生如圖的bug然後停止 https://i.imgur.com/yFUAN7c.jpg 1.這個程式是winform 2.用timer, timer.tick內是做 "資料運算->顯示在圖表" google錯誤訊息,大概都是指向foreach內的List<>被新增或移除裡面的元素 但是錯誤出現時,timer.tick執行的次數相當龐大,也沒辦法設定中斷在那邊等 雖然說自己的臭蟲要自己除 但是遇到這種狀況不知道該怎麻著手 請教各位專家,是否可以給個建議,相當感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.36.23 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1505965310.A.61C.html
YahooTaiwan: 打開工具列 -> Debug -> Windows -> Exception setti 09/21 11:43
YahooTaiwan: ngs 09/21 11:43
YahooTaiwan: 搜尋 InvalidOperationException,把它打勾 09/21 11:44
YahooTaiwan: 你是想問這個嗎?? XDD 09/21 11:45
jamyang: 本來連我該怎麻問都沒有頭緒,但是現在照您說的做...看來 09/21 16:02
jamyang: 有希望 xd 09/21 16:02
vi000246: https://goo.gl/YzgF2q 09/21 16:05
name2name2: 可以檢查foreach的時候 其他地方注意不要去增減元素? 09/22 00:38
name2name2: 或是不用foreach改用for 就允許其他地方增刪元素 09/22 00:39
name2name2: 或剛查到https://goo.gl/CquDSu 法二把集合ToArray? 09/22 00:41
name2name2: 如果是找錯誤位置 可以先下中斷點在執行正常的地方 09/22 00:43
name2name2: 更正 你可以把Exception Serttings裡的勾選框全選試 09/22 00:52
name2name2: 試看 有可能可以顯示最初步錯誤的位置 09/22 00:52
name2name2: 之後可以用右鍵恢復預設 09/22 00:53
Litfal: 看看code應該就看得出來了吧,看不出來八成是多執行續 09/22 01:06
Litfal: 樓上ToArray()去Clone一份再用是很好用的偷懶手法XD 09/22 01:07
jamyang: 根據網友的指示,可以看到中斷時的堆疊,確認是在呼叫廠 09/24 12:52
jamyang: 商dll時造成的big,現在廠商正在fix,在這裡感謝各位大大 09/24 12:52
jamyang: 補充一下,廠商的dll似乎也是在foreach出了問題 09/24 14:54