繁体   English   中英

WPF 应用程序中对 DB 的异步调用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM