delegate的BeginInvoke和EndInvoke的小例子
来源:互联网 发布:json解析中文乱码 编辑:程序博客网 时间:2024/05/16 08:11
《.NET本质论》上写得很清楚,建议看看这本书
下面这段代码,是个小实例,说明异步Delegate是如何使用的:
设计了两个代理,一个是有返回值的,一个是没有返回值的。
private void button1_Click(object sender, System.EventArgs e)
{
MessageBox.Show("GetDate process is begin.");
GetDateDelegate gd = new GetDateDelegate(this.GetCurrentDate);
gd.BeginInvoke(new AsyncCallback(this.CallbackMethod),null);
}
// Invoke a complex process.
private void button2_Click(object sender, System.EventArgs e)
{
MessageBox.Show("Complex process is begin.");
ComplexProcessDelegate cpd =
new ComplexProcessDelegate(this.DoComplexWork);
// cpd(); // synchornized invoke.
IAsyncResult iar = cpd.BeginInvoke(null, null); // aynchornized invoke.
// iar.AsyncWaitHandle.WaitOne(); // waiting util the process is over.
// Synchornized ...
MessageBox.Show("Complex process is end.");
}
private void DoComplexWork()
{
System.Threading.Thread.Sleep(5000);
}
private string GetCurrentDate()
{
System.Threading.Thread.Sleep(5000);
return DateTime.Now.ToString();
}
private void CallbackMethod(IAsyncResult iar)
{
AsyncResult ar = (AsyncResult) iar;
GetDateDelegate gd = (GetDateDelegate) ar.AsyncDelegate;
string msg = gd.EndInvoke(iar);
MessageBox.Show(msg);
}
public delegate void ComplexProcessDelegate();
public delegate string GetDateDelegate();
- delegate的BeginInvoke和EndInvoke的小例子
- 委托的BeginInvoke 和 EndInvoke及构造
- C#中BeginInvoke和EndInvoke的用法
- C#委托的BeginInvoke和EndInvoke方法
- (delegate)BeginInvoke&EndInvoke
- 委托的BeginInvoke和EndInvoke方法(多线程)
- Delegate类提供了BeginInvoke()和EndInvoke()方法
- BeginInvoke和EndInvoke 随笔
- BeginInvoke和EndInvoke方法
- BeginInvoke和EndInvoke方法
- BeginInvoke和EndInvoke方法
- BeginInvoke和EndInvoke方法
- BeginInvoke和EndInvoke方法
- BeginInvoke和EndInvoke方法
- C#beginInvoke和endinvoke
- BeginInvoke和EndInvoke方法
- BeginInvoke和EndInvoke方法
- Delegate的BeginInvoke()
- Oracle游标实用
- Web测试工具对比
- 使用VI编辑器开发PHP程序设置
- WinCE虚拟串口驱动(一)转自norains
- 标签遇到的怪问题
- delegate的BeginInvoke和EndInvoke的小例子
- ASP.NET应用中常见的,容易出错,影响性能和扩缩性的潜在问题 网摘
- WinCE虚拟串口驱动(二)
- ERROR BasicLazyInitializer
- 单元测试理论知识问答
- 函数调用的本质以及和不同语言间的比较
- 刚来嫡
- IoC与DI
- 一套Java面向对象技术试题的分析