作者james999 (无伤大雅)
看板C_Sharp
标题[问题] C#多线程及回呼函数问题
时间Fri Jan 12 01:24:55 2018
最近在使用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
1F:嘘 yzfr6: 多执行绪 02/22 07:15