c# - 当我在异步中使用添加控件时如何解决跨线程问题?c#
问题描述
当我创建新的异步控件并添加到其他控件中时。它抛出如下异常。
跨线程操作无效:控制“A2B2AA2D-059F-4ACD-B5E3-726FCE9FA1D0”从创建它的线程以外的线程访问。”
如何在异步函数中添加新控件。
解决方案
if (fileCanvas.InvokeRequired)
{
fileCanvas.Invoke((MethodInvoker)delegate {
fileCanvas.Controls.Add(canvas);
});
}
else
{
fileCanvas.Controls.Add(canvas);
}
我猜这是最简单的方法。
推荐阅读
- java - 如何使用 Swagger 生成的客户端(Feign)
- python - 在某些重叠列上合并两个数据框,同时保持非重叠列
- activeweb - ActiveWeb 控制器:测试标头值的存在
- visual-studio-code - Visual Studio Code 中每个窗口的不同主题
- android - 如何在 Android Studio 中恢复边距编辑器?
- laravel-5 - 对预检请求的响应未通过?
- javascript - 在画布上居中图像并调整画布宽度的 50%
- c++ - C++(线性搜索和排序)
- reporting-services - 尝试打印任何报告时出现错误“报告数据集执行期间发生错误”
- html - 围绕列的样式表