[英]Async Call to DB in WPF Application
我有一个运行 8 分钟的存储过程,需要触发 SP,它将更新来自 WPF 应用程序的多个表中的记录,但由于 SP 运行 8 分钟而超时,因此计划实现对 SP 的异步调用,例如,只是触发 SP 运行,最终在 8 分钟内完成更新记录。 我知道可以优化 SP,但只想知道是否有触发功能而不等待结果。
提前致谢 ..
最好在后台线程上执行长时间运行的工作(例如与服务器/数据库的通信),一旦线程完成,让 UI 线程更新 UI。
使用背景工作者:
易于实现后台线程。
var worker = new BackgroundWorker();
worker.DoWork += (sender, args) =>
{
// long running work
};
worker.RunWorkerCompleted += (sender, args) =>
{
// Update UI
};
worker.RunWorkerAsync();
异步/等待模式:
跟在 await 关键字后面的操作会返回一个任务,它将在后台线程上运行,而该方法的其余部分将充当回调。
public async void DoWork()
{
// Do long running task
var data = await Task.Run(() => new object());
// Update UI here
}
任务工厂:
Task.Factory.StartNew(() => new Object()).ContinueWith(task => MessageBox.Show(task.Result.ToString()), TaskScheduler.FromCurrentSynchronizationContext());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.