假設 Windows 窗體應用程序具有 SomeForm 類:public partial class SomeForm : Form { public int someint; .... }和另一個線程,除了主線程。如果我想從另一個線程更改表單的標題,我必須使用(Begin)Invoke,但是如果我想訪問“someint”(與任何視覺外觀無關),我是否仍然必須使用它?如果我需要,如果“someint”是靜態(tài)字段會發(fā)生什么 - 所以它不需要訪問SomeForm的實例?
1 回答

慕斯王
TA貢獻1864條經(jīng)驗 獲得超2個贊
您只需要與UI相關的內(nèi)容,因為它需要在其創(chuàng)建線程上發(fā)生所有事情。您可以從其他線程訪問簡單字段或屬性,而無需調用 UI 線程。Invoke
但是請注意,編譯器和/或JIT可能會優(yōu)化內(nèi)容,并假設這些值不會從代碼的其他部分更改。如果需要確保正確讀取和寫入值,則可能需要使用同步方法。例如,聯(lián)鎖、互斥鎖、易失性等。
- 1 回答
- 0 關注
- 131 瀏覽
添加回答
舉報
0/150
提交
取消