【发布时间】:2015-05-04 04:53:52
【问题描述】:
我遇到了一些奇怪的事情。我可以从我的 BackgroundWorker DoWork 方法中访问我的许多表单控件,但是尝试获取其中任何一个的 Handle 属性会给我“跨线程操作无效”。
例如:
private void backgroundWorker1_DoWork(object sender,
System.ComponentModel.DoWorkEventArgs e)
{
var usefulText = textbox1.Text;
var formName = this.Name;
var formHandle = this.Handle; // this line won't work
}
为什么我可以访问除Handle 之外的某些属性(或者看起来如此)?
【问题讨论】:
-
@GrantWinney 我确实需要用于调用本机 api 的句柄。不过,情况不再如此。我已经编辑了我的答案。
标签: c# .net multithreading backgroundworker