[問題] C#多線程及回呼函數問題

看板C_Sharp作者 (無傷大雅)時間6年前 (2018/01/12 01:24), 6年前編輯推噓-1(010)
留言1則, 1人參與, 6年前最新討論串1/1
最近在使用Vlc.Net, 主要是參考原作者在官網放的範例: https://github.com/ZeBobo5/Vlc.DotNet/wiki/Getting-started 其中,將MainThread的內容移至自己程式的函式內, 因為同時有宣告多個影像連線需求,所以將範例底端的while迴圈移除。 又於mediaPlayer.PositionChanged += (sender, e) =>內加上Snapshot, Snapshot所產生的檔案名稱也是依MAC儲存, 有將建立出來的mediaPlayer存於Dictionary,key為裝置的MAC位址。 同時建立2個連線並Snapshot時,程式貌似有機率會卡住, 既然Vlc Play後自己會內建線程,那麼這個回呼也是由不同線程所執行, 不曉得為什麼會造成Snapshot卡住,而沒有產生圖檔。 p.s. 程式中另外有條非MainThread每100毫秒讀取2個連線Snapshot所建立的圖檔各一次 ,迴圈每次都建立Image物件。 參考MSDN Class Image資訊為.. [執行緒安全] 此類型的任何 public static (在 Visual Basic 中 共用 在 Visual Basic 中) 成員皆 為安全執行緒。不保證任何執行個體成員為安全執行緒。 僅建立1個連線的情況則可以掛上1-2天都沒問題. 有請大大們解惑,謝謝:) ※ 編輯: james999 (61.230.197.165), 01/12/2018 01:34:58

02/22 07:15, 6年前 , 1F
多執行緒
02/22 07:15, 1F
文章代碼(AID): #1QLvtg84 (C_Sharp)