Silverlight 跨线程访问无效

解决办法有以下几种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
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Silverlight 跨线程访问无效

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭