如何调用Action <>修改winforms控件

Mik*_*ike 1 c# delegates

我有以下功能

    private void UnsubscribeSubscribe(Action action)
    {
        action.BeginInvoke(action.EndInvoke, null);
    }
Run Code Online (Sandbox Code Playgroud)

每当我传入修改我的控件数据源的操作时,都不会发生任何事情.我知道正在调用该操作,因为我正在运行的查询返回结果.我读到你只能从添加它们的同一个线程修改winform控件.我怎样才能做到这一点?

例如,运行UnsubscribeSubscribe(()=> {Foobar.DataSource = GetResults()});

GetResults() 将正常运行,但数据源将保持不变.

dle*_*lev 5

您需要在创建控件的底层句柄的线程上调用委托.Control.BeginInvoke仅用于此.