用后台线程处理UI事件
2006-12-23 01:30
274 查看
众所周知,对Windows Form应用程序来说,当用户点击UI界面产生的事件,将在UI线程上执行。
这里利用线程池和匿名方法,把UI事件处理Wire Up到后台线程处理。详见下面的程序:
首先,定义一个UI事件,这个事件将在后台线程上被触发,后台处理例程将订阅这个事件。
public delegate void UIPressedEventHandler(object sender, UIEventArgs e);
public event UIPressedEventHandler UIEventRaised;
下面这个是主要方法,它被Hook Up到UI事件上(它在UI线程上运行)。
private void Value_UIEventRaised(object sender, UIEventArgs e)
protected void OnUIEventRaised(object sender, UIEventArgs e)
这个例程将在后台线程上运行。
几点说明:
1、宏符号UIThread用于在需要跟踪调试时Bypass后台线程,以便能够Step Into。
2、注解部分是用新线程来Wire Up事件。
3、delegate用于引出一个匿名方法。
4、好处:简单明了。
这里利用线程池和匿名方法,把UI事件处理Wire Up到后台线程处理。详见下面的程序:
首先,定义一个UI事件,这个事件将在后台线程上被触发,后台处理例程将订阅这个事件。
public delegate void UIPressedEventHandler(object sender, UIEventArgs e);
public event UIPressedEventHandler UIEventRaised;
下面这个是主要方法,它被Hook Up到UI事件上(它在UI线程上运行)。
private void Value_UIEventRaised(object sender, UIEventArgs e)
protected void OnUIEventRaised(object sender, UIEventArgs e)
这个例程将在后台线程上运行。
几点说明:
1、宏符号UIThread用于在需要跟踪调试时Bypass后台线程,以便能够Step Into。
2、注解部分是用新线程来Wire Up事件。
3、delegate用于引出一个匿名方法。
4、好处:简单明了。
相关文章推荐
- 使用GCD处理后台线程和UI线程的交互(转自唐巧的技术博客)
- C#后台线程工作时更新界面的一种处理方法
- 使用后台线程BackgroundWorker处理任务的总结
- 掌握GCD以及后台永久运行的代码 (使用GCD处理后台线程和UI线程的交互)
- 利用 HandlerThread 创建一个后台工作线程( AsyncTask 的缺点),处理图片缩放时内存溢出问题
- struts 后台线程单独处理问题传值问题
- 分享一个基于winForm后台线程处理业务的小程序框架
- 使用GCD来处理后台线程和UI线程的交互
- 后台线程处理
- ios后台处理数据存储线程的代码
- spring 装配bean后执行后台进程任务处理线程的处理方式
- AsyncTask 使用后台线程处理耗时操作
- 进度条(BackgroundWorker后台线程处理)--WPF应用
- 精通iOS开发--第15章 Grand Central Dispatch和后台处理之程序生命周期 NSNotificationCenter和线程
- 使用GCD来处理后台线程和UI线程的交互
- Windows 窗体控件中的多线程处理之:如何使用后台线程搜索文件
- 滚动条控件(模式对话框+后台线程处理)
- java后台线程处理
- C#使用后台线程BackgroundWorker处理任务的总结
- 后台线程处理数据,如何实时更新UI(datagridview)----多线程同步问题