BackgroundWorker 重複執行的原由

很不俐落的程式碼


目前在做伙直排轉檔時,會使用 BackgroundWorker 作為轉檔時的多執行續的解決方案。多開執行續可以避免轉檔或是讀取時 UI Thread 會被卡在那裏,像是當機一樣。
不過卻遇到了一個小問題(?) 那就是轉檔的時候,有時候會多輸出一次檔案,我一直以為是邏輯寫錯了,導致重複執行,直到後來才發現原來是因為我把 BackgroundWorker 指派事件的 Code 寫在每次執行的 Function 裡面,導致每按下一次執行,就會再增加一次 DoWork 的事件。

過去在爬文的時候曾經遇到有大大建議把事件寫在最前面,而且最好加上 readonly,我想就是為了避免這種愚蠢的事情發生ㄌ,不過實在很少人提到詳細的原因,大概是因為這是一個很基礎的問題,所以沒有很多人在這種地方犯錯吧QQ


修正之後的版本 0.9.119 已經釋出了~
跟之前以為已經修好的版本不一樣,這次應該是真的修好了❤

留言

熱門文章