c#跨线程操作界面
来源:互联网 发布:js loadasync load 编辑:程序博客网 时间:2024/04/29 10:28
c#不允许对跨线程的控件的访问,如需操作跨线程的操作需要通过委托(delegate),即是函数指针来操作跨线
如果你直接执行,那么就是从子线程调用主线程的方法执行你的操作,这样是不允许的。 虽然没人告诉我这是为什么,但是我觉得(很多线程同时调用)那样可能会导致死锁的情况。举例说,我是主线程,电脑是子线程,我能够控制子线程怎么操作,可是你能让电脑控制我吗?显然不能,也不可能。那为什么引用就可以呢?引用是什么?引用就是方法的别名,如果你打过游戏,可以理解这是方法的一个副本。每个线程创建一个我的副本,那么就可以执行了,不会出现争抢,死锁的情况。)一楼线程安全代码的解释是这样的:定义一个委托创建一个方法{ 如果某一个操作需调用主线程的该方法 给他创建一个该方法的副本,调用该方法的副本执行操作 如果并没有调用主线程操作 直接执行【你需要的操作】}
例如siverlight中
需要用另外的线程操作界面
public void Init(Action<StackPanel> f) //把需要用单独线程操作界面的方法用委托的形式传进来 { System.Threading.Thread oThread = new System.Threading.Thread(delegate() { Deployment.Current.Dispatcher.BeginInvoke(f, leftcompetitor);//执行方法,后边为参数 }); oThread.Start(); ImageSource wimageSource = new BitmapImage(new Uri("Image/hong_4.png", UriKind.RelativeOrAbsolute)); aa.Source = wimageSource; }
- c#跨线程操作界面
- C# 跨线程操作UI(界面)
- C# 跨线程操作控件
- c#跨线程操作问题
- C#跨线程操作控件
- c# 线程,不卡界面
- c#线程,线程刷新主界面
- C# 多线程与跨线程访问界面控件
- C#中跨线程操作控件
- C#中跨线程操作控件
- C#笔记 跨线程操作控件
- C# 线程操作窗体
- C#中的线程操作
- C# 线程间操作
- c# 线程操作控件
- c# 线程操作实例
- C#中的线程操作
- c# 线程操作控件
- 不做浮躁的程序员
- 求等比数列的和
- Struts2的配置文件——web.xml
- linux内核模块
- 继天元第一份工作辞职至今
- c#跨线程操作界面
- 命令行工具之文件操作和过滤
- Windows XP 安装OpenCV 1.0.exe
- Hadoop eclipse插件编译安装问题及解决方案
- 【官方文档】【Doc】oracle官方文档总汇(9i,10g,11gR1, 11gR2)
- Android 运行jar
- acm常用技巧三 POJ 3279
- hdu 2048神、上帝以及老天爷
- js 日历组件