为了账号安全,请及时绑定邮箱和手机立即绑定

(开始)使用非可视字段调用

(开始)使用非可视字段调用

C#
茅侃侃 2022-08-20 16:48:28
假设 Windows 窗体应用程序具有 SomeForm 类:public partial class SomeForm : Form    {        public int someint;        ....    }和另一个线程,除了主线程。如果我想从另一个线程更改表单的标题,我必须使用(Begin)Invoke,但是如果我想访问“someint”(与任何视觉外观无关),我是否仍然必须使用它?如果我需要,如果“someint”是静态字段会发生什么 - 所以它不需要访问SomeForm的实例?
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

您只需要与UI相关的内容,因为它需要在其创建线程上发生所有事情。您可以从其他线程访问简单字段或属性,而无需调用 UI 线程。Invoke

但是请注意,编译器和/或JIT可能会优化内容,并假设这些值不会从代码的其他部分更改。如果需要确保正确读取和写入值,则可能需要使用同步方法。例如,联锁、互斥锁、易失性等。


查看完整回答
反对 回复 2022-08-20
  • 1 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信