Silverlight 跨线程访问无效

转载 2013年12月03日 09:52:36

解决办法有以下几种1使用 SynchronizationContext;此方法需要注意的是,System.Threading.SynchronizationContext.Current必须在UI线程中调用,如果在子线程中,将返回null;

双击代码全选
1
2
3
4
5
6
7
8
9
10
11
12
private void button1_Click(object sender, RoutedEventArgs e)  
{  
    System.Threading.SynchronizationContext sc = System.Threading.SynchronizationContext.Current;  
    System.Threading.Thread thread=new System.Threading.Thread(()=>{  
        sc.Post((o) => {  
            ((Button)sender).Content = "Hello";  
        }, null);  
              
       
    });  
    thread.Start();  
}

2 使用Dispatcher.BeginInvoke方法

双击代码全选
1
2
3
4
5
6
7
8
9
10
private void button1_Click(object sender, RoutedEventArgs e)  
{  
          
    System.Threading.Thread thread=new System.Threading.Thread(()=>{  
       
        this.Dispatcher.BeginInvoke(() => { ((Button)sender).Content = "Hello"; });  
               
    });  
    thread.Start();  
}

3 使用BackgroundWorker 类来代替你的线程类

Silverlight 跨线程访问无效(Socket例)

Silverlight 的许多请求基本都是异步的,用WCF也好,WEBCLIENT也好,都会进行异步请求,并提供一个事件用于执行回调。在使用WCF和WEBCLIENT与服务器通信的时候通常我们都不会遇...
  • banmuhuangci
  • banmuhuangci
  • 2009年05月13日 13:43
  • 3805

理解 Linux 的硬链接与软链接

Linux 的文件与目录       现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用。在 UNIX 系统中,操作系统为磁盘上的文本与图像...
  • ctthunagchneg
  • ctthunagchneg
  • 2013年08月12日 14:02
  • 1993

三种青年解决“跨线程访问窗口问题”的方法

最常见的情况就是把其它线程的文字加到listbox,总结了三种写法,由繁到简 1.普通青年:声明委托,调用委托,委托里调方法 1 2 3 4 5 ...
  • Mono1977
  • Mono1977
  • 2014年09月13日 00:36
  • 1295

线程间调用无效(跨线程调用问题)

一个线程要调用主线程的的空间进行修改,如TextBox,ListBox等,会遇到线程调用无效问题,解决方法如下; 因为你这个控件是主线程创建的,它依附于创建窗体的主线程.因此,要在子线程去访问占资源的...
  • nanwang314
  • nanwang314
  • 2011年02月25日 11:34
  • 1266

Spring boot + shiro 解决跨域登陆问题

在@Configuration注解类下面定义: @Bean @Order(Integer.MAX_VALUE-1) public FilterRegistrationBean f...
  • qq_25624213
  • qq_25624213
  • 2017年08月01日 14:34
  • 1147

使用HTML5 跨域共享特性解决AJAX跨域数据同步问题

使用HTML5 跨域共享特性解决AJAX跨域数据同步问题
  • network_boy
  • network_boy
  • 2015年04月02日 23:48
  • 1028

C#跨线程访问控件不提示错误问题

由于.net2.0以后加强了安全运行机制,不允许za
  • Yoryky
  • Yoryky
  • 2014年11月02日 21:59
  • 476

WinForm(C#)中跨线程访问控件的解决方法

由于多线程可能导致对控件访问的不一致,导致出现问题。C#中默认是要线程安全的,即在访问控件时需要首先判断是否跨线程,如果是跨线程的直接访问,在运行时会抛出异常。 解决办法有两个: 1、不进...
  • SunCherryDream
  • SunCherryDream
  • 2014年10月11日 08:44
  • 1551

Cors跨域请求,配置Access-Control-Allow-Origin:"*",无效解决方案

由于应用需要跨域请求数据,博主在JDK8、Tomcat7.0的cors可以配置Access-Control-Allow-Origin:"*",但是我按照文档配置以后却没有生效,一度怀疑是tomcat或...
  • BuptZhengChaoJie
  • BuptZhengChaoJie
  • 2016年03月17日 11:55
  • 6122

【CSS3】跨列设置column-span

column-span主要用来定义一个分列元素中的子元素能跨列多少。column-width、column-count等属性能让一元素分成多列,不管里面元素如何排放顺序,他们都是从左向右的放置内容,但...
  • happyhaojie
  • happyhaojie
  • 2016年02月25日 03:01
  • 332
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Silverlight 跨线程访问无效
举报原因:
原因补充:

(最多只允许输入30个字)