c# - 如何在 .NET 中调用父线程上的函数?

标签 c# multithreading

我有一个 .NET 类库,其中包含一个类,该类的方法可以执行一些冗长的操作。当客户端调用此方法时,它应该在新线程上执行冗长的操作以避免阻塞调用者。但是一旦方法完成,它应该在主线程上执行一些代码。在 WinForms 应用程序中,我可以使用 System.Windows.Forms.Control.Invoke 方法,但这不是我的情况。那么如何在 C# 中实现这一点呢?

最佳答案

您可以使用 System.Windows.Threading.Dispatcher 对象(来自 WindowsBase 程序集)在特定线程上调用函数。

例如:

public class ClassCreatedBySomeThread
{
    Dispatcher dispatcher = Dispatcher.CurrentDispatcher; 

    public void SafelyCallMeFromAnyThread(Action a)
    {
       dispatcher.Invoke(a);
    }
} 

关于c# - 如何在 .NET 中调用父线程上的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/269988/

相关文章:

c - 多线程标准输出在每次执行时写入不同的内容

c# - 将小数格式化为百分比以显示在 View 中?

c# - 如何加速加载数据集

c# - Monitor.Wait() 是否仍然调用上下文切换?

Java线程通信

c - 从多线程进程调用 system(3) 是否安全?

c# - 是否可以将数据从 C# 应用程序发送到网站/网络服务器?

c# - 为什么一定要写O AS INT而不能写(INT)O

c# - 从数据表分配二进制数据

java - 为什么线程运行不一致?