何谓BeginInvoke之舞.
delegate void MyHandlerDelegate();
void MyHandler()
{
// "The BeginInvoke dance"
if (this.InvokeRequired){
BeginInvoke( new MyHandlerDelegate(MyHandler) );
return;
}
do GUI stuff
}
在做多线程的程序时,我们常常在经过大量计算后,要将结果反馈给UI.如果在多线程时,直接给UI的更新的话,会引发异常.相信大家都遇上过这样的问题,同时解决的方案就是上面的所谓BeginInvoke之舞.
在2.0里提供了AsyncOperationManager.支持异步方法调用的类提供并发管理.利用他就可以避免BeginInvoke了.再说每次写那样个东东也很烦.
public partial class Form1 : Form
{
AsyncOperation asyncOperation ;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
asyncOperation = AsyncOperationManager.CreateOperation(null);
Thread t = new Thread(new ThreadStart(RunTask));
t.Start();
}
public void RunTask()
{
Thread.Sleep(5000);
asyncOperation.Post(new SendOrPostCallback(ShowText), "hello");
}
void ShowText(object s)
{
this.textBox1.Text = s.ToString();
}
}
分享到:
相关推荐
本文开始C#线程系列讲座之一,即BeginInvoke和EndInvoke的使用方法,需要的朋友可以参考下
使用委托的异步调用 Winform应用程序 委托.BeginInvoke 将当前线程的消息转入后台线程 Form.BeginInvoke 可以将其他线程的消息转入界面线程
今天小编就为大家分享一篇关于C#用委托BeginInvoke做异步线程,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
在C#中,由于使用线程和调用UI的线程属于两个不同的线程,如果在线程中直接设置UI元素的属性,此时就会出现跨线程错误。 下面介绍两种解决方案 第一种:使用控件自带的Invoke或者BeginInvoke方法。 Task....
BeginInvoke导致StackOverflowException
就Invoke和BeginInvoke进行对比介绍,穿插了一些例子在里面
很详细、明确的讲解了invoke和beginInvoke的区别,以及二者所用的场合和情况,如果需要确实值得一看
让你快速掌握INvoke与BeginInvoke的区别,HAHA
C#窗体中Invoke和BeginInvoke方法详解
使用委托,事件和BeginInvoke从另外一个cs文件向form.cs文件传递数据,并把数据赋值给窗体控件
C_窗体中Invoke和BeginInvoke方法详解 京华志&精华志出品 希望大家互相学习,互相进步 支持CSDN 支持微软 主要包括C# ASP.NET SQLDBA 源码 毕业设计 开题报告 答辩PPT等
form1中开启线程thread,thread的方法crossthreadaddnum在类cross中实现在crossthreadaddnum中调用form1中的listbox1
1、测试调用委托时BeginInvoke和Invoke的表现差异 2、System.Timers.Timer多线程刷新界面 3、System.Threading.ThreadPool多线程刷新界面 4、System.Threading.Thread多线程刷新界面
C__BeginInvoke_和Invoke区别 京华志&精华志出品 希望大家互相学习,互相进步 支持CSDN 支持微软 主要包括C# ASP.NET SQLDBA 源码 毕业设计 开题报告 答辩PPT等
使用delegate和Invoke,使用delegate和BeginInvoke,使用BackgroundWorker组件,使用SynchronizationContext组件
c# 中Invoke和BeginInvoke_区别, 适合初学者,一看就会
C__BeginInvoke_和Invoke区别
控件异步调用的Control.BeginInvoke实例解析源码 winform