SQL CLR no se puede ejecutar

Tengo entendido que lo esperado completa la parte restante del código de ejecución cuando regresan de la espera. Estoy tratando de hacer que esto funcione en un sql clr, y esto no funciona ya que tanto el proceso esperado como los códigos debajo de él no se ejecutan. En el método de depuración, el control solo regresa después de ejecutar la línea de espera.

¿Cómo puedo hacer que esto funcione, ya que el requisito es que clr se ejecute sin bloquear el hilo principal para que otro trabajo pueda continuar bien en la base de datos? Realmente necesito que esto funcione, y he estado en ello durante 2 días.

Nota: esto funciona bien si el método es sync. Y el ensamblado de proceso almacenado se registra como inseguro en el servidor SQL. Estoy usando mssql 2012 y 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):


        }

    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta