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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个完整的操作UI线程的例子,用到了多种方式

發布時間:2025/6/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个完整的操作UI线程的例子,用到了多种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading;namespace CroessThread更新文本 {public partial class Form1 : Form{public Form1(){InitializeComponent();}delegate void invokeCallBackSetTextDelegent(string content); //代理 /// <summary>/// 多線程調用控件正確的方法/// </summary>/// <param name="content"></param>private void OperationControl(object content){string convertObjTocontent = content as string;if (this.txtMrid.InvokeRequired)//{invokeCallBackSetTextDelegent fc = new invokeCallBackSetTextDelegent(OperationControl); //this.Invoke(fc);//通過代理調用刷新方法}else{this.txtMrid.Text = this.txtMrid.Text + "," + convertObjTocontent;}}/// <summary>/// 多線程調用控件正確的方法/// </summary>/// <param name="content"></param>private void OperationControl(string content){string convertObjTocontent = content as string;if (this.txtMrid.InvokeRequired)//{invokeCallBackSetTextDelegent fc = new invokeCallBackSetTextDelegent(OperationControl); //this.Invoke(fc,content);//通過代理調用刷新方法}else{this.txtMrid.Text = this.txtMrid.Text + "," + convertObjTocontent;}}/// <summary>/// 多線程調用控件正確的方法/// </summary>/// <param name="content"></param>private bool OperationControlWithReturn(object content){string convertObjTocontent = content as string;if (this.txtMrid.InvokeRequired)//{invokeCallBackSetTextDelegent fc = new invokeCallBackSetTextDelegent(OperationControl); //this.Invoke(fc, content);//通過代理調用刷新方法}else{this.txtMrid.Text = this.txtMrid.Text + "," + convertObjTocontent;}return true;}/// <summary>/// 更新文本/// </summary>/// <param name="txtMrid"></param>/// <param name="txtName"></param>/// <param name="txtState"></param>private void SetTextSafe(string txtMrid, string txtName, string txtState){if (this.txtMrid.InvokeRequired){//方法一 缺陷 容易參數范圍擴大提升或是減小this.txtMrid.Invoke(new MethodInvoker(delegate { this.txtMrid.Text = txtName; })); // 匿名委托 無參數, 不用創建不用定義委托類型和委托方法體//方法二 缺陷WaitCallback callBack = new WaitCallback(OperationControl); //用創建WaitCallback的 委托this.txtMrid.Invoke(callBack, new object[] { txtMrid }); // 主動型 //方法三 (缺陷的方法,注入到主線程 )//將代理綁定到方法 invokeCallBackSetTextDelegent fc = new invokeCallBackSetTextDelegent(OperationControl); // 同方法二,只不過是自定義需要自己創建不用定義委托類型this.Invoke(fc, new object[] { txtMrid });//調用代理//方法五 invokeCallBackSetTextDelegent synacall = new invokeCallBackSetTextDelegent(OperationControl); // 同方法二完全一樣AsyncCallback callback = new AsyncCallback(SynacalCallBack);IAsyncResult result = synacall.BeginInvoke(txtMrid, callback, null);//異步版本的synacall.EndInvoke(result);//方法六 Action<string> actAnoi = delegate(string arg) { OperationControl(arg); }; //不用定義委托類型 actAnoi(txtMrid);//方法六 Action<string> actAname =new Action<string>(OperationControl); //不用定義委托類型 actAnoi(txtMrid);//方法七Func<string, bool> func = new Func<string, bool>(OperationControlWithReturn); //不用定義委托類型 func.Invoke(txtMrid);}else{this.txtMrid.Text = txtMrid;}}private void button1_Click(object sender, EventArgs e){List<string> lsstr = new List<string>();lsstr.Add("同志們");lsstr.Add("大家好");lsstr.Add("早上好");ParameterizedThreadStart delstart = new ParameterizedThreadStart(SetTextCommon);Thread thread = new Thread(delstart);thread.Start(lsstr);}private void SetTextCommon(object lsObje){List<string> lsstring = lsObje as List<string>;SetTextSafe(lsstring[0], string.Empty, string.Empty);}private void SynacalCallBack(IAsyncResult result){Console.WriteLine("完成 ");}} }

轉載于:https://www.cnblogs.com/lixinhai/archive/2012/06/08/2541311.html

總結

以上是生活随笔為你收集整理的一个完整的操作UI线程的例子,用到了多种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人在线一区二区 | 女儿的朋友在线播放 | av无线看 | av福利社| 女女互磨互喷水高潮les呻吟 | 国产欧美成人 | 久久无码人妻一区二区三区 | 五十路熟母| 国产精品综合网 | 免费网站在线高清观看 | 妞妞av| 国产三级三级三级三级三级 | av大全在线| 护士人妻hd中文字幕 | 暖暖日本在线视频 | 日韩在线一二三 | 五月天婷婷久久 | 男女互操视频 | 国产91精品露脸国语对白 | 漂亮人妻洗澡被公强 日日躁 | 国产黄色精品网站 | 国产视频久久久久久久 | 靠逼在线观看 | 国语对白久久 | 深夜久久 | 少妇视频在线观看 | 久久爱综合 | 亚洲永久精品视频 | 亚洲男人天堂2024 | 国产一区二区三区在线播放无 | 久久激情片 | 在线黄色网 | 午夜看片 | 欧美特级黄色录像 | 国产裸体无遮挡 | 91视频免费网址 | 久久大胆视频 | 黄色免费网站在线 | 色悠久久久| 一区免费视频 | 精品在线第一页 | 欧美日韩国产高清 | 亚洲欧美在线观看视频 | 一本色道久久综合 | 国产麻豆午夜三级精品 | 综合久色 | 美女在线国产 | 日本做爰全过程免费看 | 国产亚洲精品久久久久久久 | 日韩伦乱| 欧美激情在线一区二区 | 一级视频在线观看 | 午夜免费看 | 超碰神马 | 亚洲精品视频导航 | 欧美a级在线观看 | 隔壁邻居是巨爆乳寡妇 | 日韩av无码一区二区三区不卡 | 国产精品国产三级国产aⅴ 欧美bbbbbbbbbbbb18av | 中文字幕成人 | 欧美成年人视频 | 免费人妻一区二区三区 | 欧美1区2区3区| 黄色特一级| 四虎在线免费视频 | 欧美丰满老妇性猛交 | 理论视频在线观看 | 森泽佳奈中文字幕 | 日美韩一区二区三区 | 91香蕉一区二区三区在线观看 | 精品久久一 | 美女性高潮视频 | 亚洲天堂少妇 | 插久久 | 女人性高潮视频 | 国产四区 | 伊人久久综合视频 | 日韩av在线免费观看 | 久久久在线视频 | 国产精品12p | 精品久久久久久久免费人妻 | 精品在线视频免费 | 国产二区视频在线观看 | 91精品国产高清一区二区三区蜜臀 | 一区二区xxx| 国产中文字幕在线 | 性av网 | 综合激情网五月 | 中国女人一级片 | 国产精品久久久久久久专区 | 看黄色大片| 国产精品无码久久久久高潮 | 中文字幕在线播 | 久操av | 99久久这里只有精品 | 午夜网站在线观看 | 精品久久香蕉国产线看观看亚洲 | 国产91一区在线精品 | 欧洲色网|