更新pictureBox是邪恶的吗?首先,下面的代码似乎有效。它从连续的字节流中提取jpeg图像,并在封装的数据包校验和正确时将它们显示在pictureBox中。由于PictureBox由RxThread异步更新,因此需要注意的是间歇性GUI问题。这里使用的方法是否可以,或者在呈现给客户时可能会崩溃?publicFormMain(){InitializeComponent();vart1=newThread(RxThread){IsBackground=true};t1.开始();}privatevoidRxThread(){while(true){...//验证传入流varpayload=newByte[payloadSize];...//将jpeg图像从流复制到负载pictureBox.Image=newBitmap(newMemoryStream(payload));我认为所有对UI控件的访问都应该从UI线程完成。从没有基础句柄的线程修改控件可能会产生不良影响。在最好的情况下会抛出异常,在最坏的情况下一切都会正常,直到出现某些竞争条件(并且您可能会花费大量时间尝试复制它)。使用Invoke方法,传递将在UI线程上执行的委托。为什么不使用Invoke来更新PictureBox?你确定它有效吗?我不明白为什么它不抛出InvalidOperationException:(Cross-threadoperationnotvalid)因为控件是从创建它的线程以外的线程更新的。您应该通过在UI线程上调用的委托方法来更新UI。C#学习教程就是这样:从后台C#线程更新pictureBox是邪恶的吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
