小编Ill*_*rik的帖子

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

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

// 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` …
Run Code Online (Sandbox Code Playgroud)

c# silverlight multithreading windows-phone-7

7
推荐指数
1
解决办法
1568
查看次数

标签 统计

c# ×1

multithreading ×1

silverlight ×1

windows-phone-7 ×1