我有以下功能
private void UnsubscribeSubscribe(Action action)
{
action.BeginInvoke(action.EndInvoke, null);
}
每当我传入一个修改我的控件数据源的操作时,什么都不会发生。我知道正在调用该操作,因为我正在运行的查询正在返回结果。我在读到您只能从添加它们的同一线程中修改 winform 控件。我怎样才能使这项工作?
例如,运行
UnsubscribeSubscribe(() => { Foobar.DataSource = GetResults() });
GetResults()
将正常运行,但数据源将保持不变。
最佳答案
您需要在创建控件底层句柄的线程上调用委托(delegate)。 Control.BeginInvoke仅用于此目的。
关于c# - 如何调用Action<>修改winforms控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5476918/