用于解决跨线程异常的 C# 扩展

标签 c# multithreading

是否有任何扩展方法可用于解决 Windows 窗体中的跨线程异常,例如用于 wpf 窗体或任何一般模式的方法..

http://www.codeproject.com/Articles/37314/Useful-WPF-Threading-Extension-Method.aspx

最佳答案

Invoke 已经做了一些的事情来短路这里,但是让它完整是微不足道的:

public static class SyncExtensions {
    public static void InvokeIfRequired(this ISynchronizeInvoke ctrl,
            MethodInvoker method) {
        if(ctrl.InvokeRequired) ctrl.Invoke(method, null);
        else method();
    }
}

MethodInvoker 的选择是因为它在 Invoke 中有特定的处理以避免必须使用 DynamicInvoke(反射)。

关于用于解决跨线程异常的 C# 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215190/

相关文章:

ios - 核心数据多线程应用

c# - 连续读取 CF 上的多个 TCP 连接

python - rabbitmq 使用 pika 线程

c# - 如何在不创建新刷新 token 的情况下使用刷新 token 更新 Owin 访问 token ?

c# - Win32 笔模拟不适用于 InjectTouchInput()

c# - 不重复的随机字符串生成器

c# - 使用 View 模型的依赖属性来更改矩形的填充

c# - 从另一个类访问表单控件

java - Main 方法在执行过程中等待线程完成。为什么?

c++ - 如何在 Mac OSX 上获取每个线程的 CPU 使用率