C#一行代码实现之 跨线程设置控件值2

代码调用

复制代码
ThreadPool.QueueUserWorkItem(o =>
{
    for (int i = 0; i < 100; i++)
    {
        this.ExInvokeUi(() => textBox.Text = i.ToString());
    }
});
//
Task.Run(() =>
{
    for (int i = 0; i < 100; i++)
    {
        this.ExInvokeUi(() => textBox.Text = i.ToString());
    }
});
复制代码

代码封装

复制代码
/// <summary>
/// 跨线程访问控件,调用示例:this.ExInvokeUi(()=>txtName.Text="Jack");
/// </summary>
/// <param name="control"></param>
/// <param name="action"></param>
public static void ExInvokeUi(this Control control, Action action)
{
    if (control.InvokeRequired)
        control.Invoke(action);
    else
        action.Invoke();
}
复制代码

 

posted @   懒树懒  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示