SQL CLR aguardável não sendo executado
Entendo que o aguardável conclui a parte restante do código em execução quando eles retornam da espera. Estou tentando fazer com que isso funcione em um sql clr, e isso não está funcionando, pois o processo esperado e os códigos abaixo dele não estão sendo executados. No método de depuração, o controle retorna apenas após executar a linha de espera.
como posso fazer esse trabalho, pois o requisito é que o clr seja executado sem bloquear o thread principal, para que outros trabalhos possam continuar bem no banco de dados. Eu realmente preciso que isso funcione, e estou nele há 2 dias.
NB Isso funciona bem se o método for sincronizado. E o proc armazenado é registrado como inseguro no servidor sql. Estou usando o mssql 2012 e o visual studio 2015.
public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static async void sp_push_stock_update(SqlString transactionPrimaryKey, SqlString transactionType)
{
using (SqlConnection conn = new SqlConnection("context connection=true"))
{
StockUpdateClient.stock_fetcher _stockFetcher = new StockUpdateClient.stock_fetcher(conn);
List<String> skuList = await new
System.Threading.Tasks.Task<List<string>>(()=>
_stockFetcher.getItems(transactionPrimaryKey, transactionType));
//Code does not get here
performLogging(skuList):
}
}
}