这似乎相当微不足道,我在网上看到了一些类似的问题,但无论如何我无法让它继续工作。 我有一个C#线程,等待传入的TCP客户端然后通过TCP读取图像。所有这一切都很好,但我无法获得显示图像的线程。
这就是我所拥有的。 在UI线程中:
public partial class ReadImagePage : Page {
//...
listener = new TcpListener(IPAddress.Any, 11114);
listenThread = new Thread(() => AsyncAccept(this, listener));
listenThread.Start();
//...
}
在AsyncAccept中:
private void AsyncAccept(ReadPassportPage readPassportPage, TcpListener listener)
{
listener.Start();
TcpClient client = listener.AcceptTcpClient();
var image = new BitmapImage();
// read bitmap from tcp...
}
我现在想在WPF页面中将图像设置为图像。我尝试了多种变体。甚至将页面对象传递给线程。但是我一直收到InvalidOperationException异常,因为不允许Thread访问UI元素。
Application.Current.Dispatcher.BeginInvoke(new Action(delegate() {
signatureImage.Source = image;
}));
我怎样才能让它发挥作用?任何帮助是极大的赞赏。提前谢谢。