我有一个 .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/