gpt4 book ai didi

c# - 使用后台 worker 的简单异步方法调用(需要对我的实现的反馈)

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:25 25 4
gpt4 key购买 nike

我想要一种异步调用方法并在完成时触发函数的方法。这部分受到 Web 应用程序中 AJAX 调用的启发。我的实现可以吗?有更好的方法吗?

public static class Tools
{

public static void RunAsync(Action function, Action callback)
{
BackgroundWorker worker = new BackgroundWorker();
worker.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs e)
{
callback();
};
worker.DoWork += delegate(object sender, DoWorkEventArgs e)
{
function();
};
worker.RunWorkerAsync();
}

}

有没有一种好的方法可以扩展它以使用带参数并有返回值的函数?

谢谢!

最佳答案

如何更改 Action委托(delegate)给 Action<T> .

public static class Tools 
{

public static void RunAsync<T>(Action<T> function, Action callback, T parameter)
{
BackgroundWorker worker = new BackgroundWorker();
worker.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs e)
{
callback();
};
worker.DoWork += delegate(object sender, DoWorkEventArgs e)
{
function(parameter);
};
worker.RunWorkerAsync();
}

}

关于c# - 使用后台 worker 的简单异步方法调用(需要对我的实现的反馈),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3302706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com