是否有任何扩展方法可用于解决 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/