将先前的同步方法更改为异步

时间:2016-03-07 10:10:42

标签: c# .net asynchronous parallel-processing async-await

我有一个从授权卡支付的程序中调用的方法,该方法以前是以同步方式实现的。但是现在我想改变它,所以它在不同的线程上运行,所以我可以在它开始后发送取消请求。 它有效,但我想知道这是否是一个很好的实现,如果有一些我需要考虑的事情,如死锁等。 所以这是我的代码的简化版本:

SELECT count(*) 
FROM TID003_ANAGEDIFICIO anagraficaEdificio 
INNER JOIN TID002_CANDIDATURA candidatura ON(candidatura.PRG_PAR = anagraficaEdificio.PRG_PAR, candidatura.PRG_CAN = anagraficaEdificio.PRG_CAN)
WHERE anagraficaEdificio.FLG_GRA=1;

我主要想使用async - await,因为我希望授权工作与UI线程分开运行,这样用户仍然可以取消操作。 你是否建议除了异步之外的其他方法 - 等待? 我主要关心的事实是我从同步方法调用异步方法,我知道最好的做法是一直使用异步,但我不能改变程序的其余部分。 我有另一个问题是Authorize()中的锁可能会造成任何问题吗?我只希望一次一个线程访问代码。 我对这个异步是相当新的 - 等待.net中的架构,所以我很确定我在第一次尝试时没有做到这一点。

0 个答案:

没有答案