国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

C#的界面控件屬性修改線程安全問(wèn)題

2019-11-14 16:16:00
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

今天在實(shí)驗(yàn)delegate與thread

在初步的實(shí)驗(yàn)結(jié)束后,因?yàn)樵瓉?lái)的delegate只有一個(gè)函數(shù)會(huì)被調(diào)用,感覺(jué)沒(méi)有達(dá)到delegate的極致,所以又重新自己定義了一個(gè)delegate,在另一個(gè)線程

運(yùn)行時(shí)調(diào)用這個(gè)delegate,其中有兩個(gè)函數(shù)會(huì)被順序調(diào)用。

一開(kāi)始寫的很順利,點(diǎn)擊運(yùn)行。生成第二個(gè)線程后,突然報(bào)出異常。說(shuō)是不能再控件創(chuàng)建的線程外調(diào)用這個(gè)控件的屬性。

于是有些奇怪,因?yàn)橹皇羌尤肓艘粋€(gè)不痛不癢的函數(shù)而已。

回溯,發(fā)現(xiàn)問(wèn)題。

 

原來(lái)原來(lái)調(diào)用delegate,是通過(guò)控件的invoke方法調(diào)用,而這次,是直接使用了delegate名稱直接調(diào)用。

通過(guò)invoke調(diào)用的話,程序會(huì)一直追溯回到主線程來(lái)調(diào)用程序修改參數(shù)值。

而直接調(diào)用delegate,相當(dāng)于在當(dāng)前線程下就會(huì)直接調(diào)用,從而出錯(cuò)。

Mark this。

 

如果嫌這樣還要每次對(duì)相應(yīng)的控件invoke麻煩的話,可以直接通過(guò)主窗體的invoke進(jìn)行統(tǒng)一的調(diào)用。this.invoke(XXX);


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 老河口市| 桦川县| 伊金霍洛旗| 博白县| 白城市| 易门县| 张掖市| 包头市| 宣化县| 修文县| 凤山市| 井研县| 含山县| 顺平县| 灵川县| 大兴区| 太和县| 莱西市| 甘孜县| 昌吉市| 和林格尔县| 巧家县| 图木舒克市| 南陵县| 常宁市| 白玉县| 常山县| 左权县| 手游| 平安县| 裕民县| 周口市| 昆山市| 满洲里市| 赤峰市| 浦东新区| 年辖:市辖区| 桂平市| 江门市| 渝中区| 遂昌县|