日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

多线程的操作与数据绑定

發(fā)布時(shí)間:2025/3/20 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多线程的操作与数据绑定 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

關(guān)于多線程的問(wèn)題,一直沒(méi)有弄太懂, 今天在 CodeProject 上看到一個(gè)很好的講解多線程例子, 為增強(qiáng)理解,用我自己理解的方式記錄下來(lái),以便遺忘后查看。

如下圖所示, 點(diǎn)擊啟動(dòng)進(jìn)度條后, 進(jìn)度條會(huì)開(kāi)始變化。

?????

代碼如下:

1 private void btnStartProg_Click(object sender, RoutedEventArgs e) 2 { 3 startN = Convert.ToInt32(startNum.Text); 4 endN = Convert.ToInt32(endNum.Text); 5 6 progBar.Minimum = startN; 7 progBar.Maximum = endN; 8 9 for (int progValue = startN; progValue < endN; progValue++) 10 { 11 progBar.Value = progValue; 12 } 13 }

?

?

當(dāng) End 數(shù)值大于10e6 時(shí), 會(huì)出線界面無(wú)響應(yīng)狀態(tài),如下圖所示:

?

之所以有這種情況是因?yàn)閱尉€程條件下, 當(dāng)數(shù)值過(guò)大時(shí)候, 線程阻塞在 for 循環(huán)位置, 來(lái)不及更新界面。

要解決這個(gè)問(wèn)題很簡(jiǎn)單, 在 UI 線程外增加一個(gè)新的線程(wpf中采用dispatcher.invoke, 若不是在UI線程中, 可采用事件的形式),使得進(jìn)度條的變化在另一線程中進(jìn)行。

1      private void btnStartProg_Click(object sender, RoutedEventArgs e) 2 { 3 startN = Convert.ToInt32(startNum.Text); 4 endN = Convert.ToInt32(endNum.Text); 5 6 progBar.Minimum = startN; 7 progBar.Maximum = endN; 8 9 System.Threading.Thread changeValueThread = new System.Threading.Thread(ChangeProgessValue); 10 changeValueThread.Start(); 12 } 13 14 private void ChangeProgessValue() 15 { 16 for (int progValue = startN; progValue < endN; progValue++) 17 { 18 Dispatcher.Invoke(() => progBar.Value = progValue); 19 } 20 }

?

?

另一種處理多線程的通信方式可基于事件機(jī)制進(jìn)行通信, 具體如下圖所示(參考 https://www.jianshu.com/p/8faae685a468):

?

在 wpf 中, 當(dāng)界面的某個(gè)值大量的變化的時(shí)候,采用綁定屬性(全局變量)的方式,免去根據(jù) Name 來(lái)查找控件位置, 速度會(huì)快很多。

具體代碼如下:

?

?

?

1 // 類繼承 INotifyPropertyChanged, 實(shí)現(xiàn)并重載事件處理方法 2 public event PropertyChangedEventHandler PropertyChanged; 3 protected virtual void OnpropertyChanged(string propertyName) 4 { 5 if(this.PropertyChanged != null) 6 { 7 this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)) 8 } 9 } 10 // 定義一個(gè)屬性 11 private int currentValue; 12 public int CurrentValue 13 { 14 get {return currentValue} 15 set 16 { 17 currentValue = value; 18 OnpropertyChanged("CurrentValue"); 19 } 20 } 21 22 // 然后在 .xmal 需要改變的值得位置添加值綁定 Value = "{Binding CurrentValue}"

?

轉(zhuǎn)載于:https://www.cnblogs.com/yaolin1228/p/8194647.html

總結(jié)

以上是生活随笔為你收集整理的多线程的操作与数据绑定的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99爱在线视频| 果冻传媒18禁免费视频 | 久久性感视频 | 91看毛片| 国产ts三人妖大战直男 | 中文字幕 欧美激情 | 51av视频| 国产高清精品在线 | 另类视频在线观看 | 久久不卡日韩美女 | 亚洲天堂久久久 | 国产精品桃色 | 国产精品久久久久影院 | 婷婷成人av | 中国毛片在线观看 | 久久911| 欧美一区二区性久久久 | 美女下部无遮挡 | 国产精品免费久久 | 涩婷婷| 欧美视频四区 | 国产免费又爽又色又粗视频 | 天天射日日射 | 干欧美少妇 | 狠狠操五月天 | 亚洲网站在线 | 成人黄色短视频在线观看 | 99久久久无码国产精品性青椒 | 国产麻豆成人 | 欧美日韩一区二区三区四区五区六区 | av日韩精品| 亚洲一区二区三区电影 | 影音先锋国产资源 | 欧美一区在线看 | 久久人人爽人人爽人人片 | 91黄色免费观看 | 亚洲成a人片77777kkkk | 国产精品久久中文字幕 | 午夜激情导航 | 亚洲一区 欧美 | 99久国产| 欧美成年人在线观看 | 中文字幕国产日韩 | 国产亚洲精品久久久久久青梅 | 蜜臀久久精品 | 免费黄色在线视频 | 无码久久av一区二区三区 | 91麻豆国产视频 | bt天堂新版中文在线地址 | 国产精品女优 | 北条麻妃青青久久 | 99精品偷自拍 | 欧美日韩八区 | 爆操女秘书 | 色综合久久久无码中文字幕波多 | 东方伊甸园av在线 | 蜜臀久久精品久久久用户群体 | 日韩美女视频一区二区 | 亚洲在线一区 | av五十路| 国产精品主播视频 | 免费的黄色一级片 | 9.1成人看片免费版 日韩经典在线 | 欧美一级片免费看 | 91禁看片| 黄色片在线视频 | 一本色道综合久久欧美日韩精品 | 国产精品自拍合集 | 久久久久女教师免费一区 | 97超碰总站| 风间由美av在线 | 三级网站在线免费观看 | 欧美国产日本 | 亚洲综合另类小说 | av在线播放器 | 亚洲国产欧美在线观看 | 国产黄色网页 | 欧美黄色网络 | 国产精品va | 久久黄色录像 | 麻豆成人免费视频 | 欧美乱仑| 亚洲视频福利 | 国产1页 | 亚洲性猛交 | 日韩欧美中出 | 欧美一级二级三级视频 | k8yy毛片| 亚洲无人区码一码二码三码 | 免费看欧美黑人毛片 | 国产又粗又猛又爽又黄的 | 97国产| 天天操天天添 | 日韩美女啪啪 | 成人免费观看视频网站 | 中文字幕一区二区三区四区视频 | 91伊人 | 亚洲色在线视频 | 在线成人 |