知识大全 C# 跨线程调用TextBox方法浅析
Posted 知
篇首语:事常与人违,事总在人为。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C# 跨线程调用TextBox方法浅析相关的知识,希望对你有一定的参考价值。
C# 跨线程调用TextBox方法浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
首先来看下面代码 主线程 delegate void SetTextCallback(string text) private void SetText(string text) if (this textBox InvokeRequired) SetTextCallback d = new SetTextCallback(SetText) this Invoke(d new object[] text ) else this textBox Text = text; private void BtnMainThread_Click(object sender EventArgs e) //主线程调用textBox this textBox Text = Main Thread ; 子线程 private void BtnNewThread_Click(object sender EventArgs e) //子线程调用textBox this demoThread = new Thread(new ThreadStart(this NewThreadSet)) this demoThread Start() private void NewThreadSet() this SetText( New Thread ) 首先需要对 this textBox InvokeRequired 返回值的解释 当主线程调用其所在的方法时返回 False 当子线程调用其所在的方法时返回 True 当单击 主线程调用textBox 时 this textBox InvokeRequired 的返回值为 False 直接执行 else 的代码 textBox 中显示 Main Thread 当单击 子线程调用textBox 时 this textBox InvokeRequired 的返回值为 True 执行 SetTextCallback d = new SetTextCallback(SetText) this Invoke(d new object[] text ) 这两句代码 其中Invoke的作用是 在拥有控件的基础窗口句柄的线程上 用指定的参数列表执行指定委托 a 在拥有控件的基础窗口句柄的线程上 就是指主线程 b 指定的参数列表 是指的参数 text c 指定委托 是指 SetText 方法 这样就很容易看出 代码执行到 Invoke 后就会把子线程的参数 New Thread 交给主线程去执行 SetText 方法 此时由于是主线程调用SetText方法 所以this textBox InvokeRequired的返回值为False 直接执行else的代码 textBox 中显示 New Thread cha138/Article/program/net/201311/12241相关参考
在C#中跨线程访问Winform控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在程序需要读
VisualC#多线程参数传递浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我们在写Rem
首先我们分析一下异步处理的环境 需要在当前线程中获取返回值 不需要在当前线程中获取返回值但是仍然需要对返回值做处理 对于第中情况还可以继续细分 在当前线程中启动线程T然后继续执行当前线程中
C#让TextBox只允许输入数字 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! publicc
C#TextBox事件实现实例详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C#TextB
c#鼠标点击TextBox控件后清空默认字体 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 方案
知识大全 c#做的计算器,如何在下次输入数字时,textbox里的结果自动清除
c#做的计算器,如何在下次输入数字时,textbox里的结果自动清除你可以增加一个按钮控件,命为清空具体是双击控件,进入后台编写代码即可实现publicvoidButton_click(.....)t
在C#中可以通过Label控件TextBox控件窗体和PictureBox控件来显示文字窗体和PictureBox控件主要是通过DrawString方法实现而TextBox控件和Label控件是专
Java多线程实现异步调用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在JAVA平台实现异步
VisualC#多线程参数传递浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!我们在写Remot