首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WP 7多线程,无效的跨线程访问

WP 7多线程,无效的跨线程访问
EN

Stack Overflow用户
提问于 2012-10-21 02:38:25
回答 1查看 1.6K关注 0票数 7

我想警告我的页面传输的数据已经完成。我创建了对象,添加了事件处理程序,并为异步传输数据到服务器调用了新的线程。当数据从服务器发送和接收时,我回调了我的事件,但抛出了异常‘无效的跨线程访问’。为什么不运行我的事件处理程序?

代码语言:javascript
复制
// My page (PhoneApplicationPage)
public partial class PageStart
{
     private void btn_Send_Click(object sender, RoutedEventArgs e)
     {
          TransmitHolder holder = new TransmitHolder();
          holder.onCompleted += new TransmitHolder.CompleteHandler(onCompleted);
          // transmit async
          new Thread(delegate() { Transmitter(holder).Start(); }).Start();
     }

     private void onCompleted(object sender, byte[] answer)
     {
          //some code
     }
}

public class TransmitHolder
{
     public delegate void CompleteHandler(object sender, byte[] answer);
     public event CompleteHandler onCompleted;

     public void Complete(byte[] answer)
     {
         if (onCompleted != null)
         {
             onCompleted(null, answer); // here throw exception `invalid cross-thread access`
         }
     }
}

public class Transmitter
{
    private TransmitHolder holder;

    public Transmitter(TransmitHolder holder)
    {
         this.holder = holder;
    }

    // send data from server
    public void Start()
    {
         // send data using soket
         NetworkManager nm = new NetworkManager();
         // method Send execute Connect, Send and Recive data from server
         byte[] answer = nm.Send(Encoding.UTF8.GetBytes("hello_word"));
         holder.Complette(answer); // notify, send data completed
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-21 02:48:59

在Windows Phone 7平台上,所有的UI逻辑都应该在UI线程上完成。如果您尝试更改可视化树,或者在不同于专用UI线程的线程上设置/获取DependencyObject (所有UI元素都是DependencyObject(s) )的属性,您将得到一个无效的跨线程异常。

要在正确的线程上执行UI逻辑,请使用适当的调度程序。

代码语言:javascript
复制
Deployment.Current.Dispatcher.BeginInvoke(() => { <Put your UI logic here> }); 
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12991502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档