Ada*_*dam 6 .net c# multithreading
我正在尝试更新文本框.我认为我的线程代码可以解决问题,但事实并非如此.有人能帮忙吗?
new Thread((ThreadStart)delegate { txtCapacitance.Text = Math.Round(capacitance, 3).ToString(); }).Start();
Run Code Online (Sandbox Code Playgroud)
给出以下错误:
跨线程操作无效:控制'txtCapacitance'从其创建的线程以外的线程访问.
请注意,所有这些都是由dataReceived函数启动的,每当收到USB数据时都会调用该函数.
UI对象只能从UI线程调用.这可以通过Control的Invoke方法完成:
txtCapacitance.Invoke((Action)(() => { txtCapacitance.Text = Math.Round(capacitance, 3).ToString(); }));
Run Code Online (Sandbox Code Playgroud)