|
做這個煙廠的后臺監(jiān)控系統(tǒng),ifix有些功能不具備,只好自己寫一些activex控件,嵌入到ifix的畫面里面。需要用到socket接受遠(yuǎn)方前置機發(fā)過來的soe信息,為udp開了一個線程,收到信息發(fā)給ifix,結(jié)果總是莫名的出現(xiàn)卡死和錯誤,開始以為是ifix的容器不好,后來發(fā)現(xiàn),問題總是出在控件Fire事件的時候,突然想起來,套間線程來,activex是公寓線程,里面的子線程是要考慮線程安全的,是不能直接調(diào)用控件接口的,直接自定義了一個消息(子線程也可以實現(xiàn),但是比較麻煩),由主線程觸發(fā)事件,搞定!
默然覺得自己什么時候好像遇到過這個問題,opc,自己做opc server合客戶端的時候遇到過這個問題,當(dāng)時花了一天多的時候才查出來,看來還需要加強COM的理解。做好筆記啊,不然總是忘啊,范同樣的錯誤。
|
|