SQL CLR ожидаемо не выполняется
Насколько я понимаю, ожидаемый завершает оставшуюся часть исполняемого кода, когда они возвращаются из ожидания. Я пытаюсь заставить это работать в sql clr, и это не работает, так как ожидаемый процесс и коды под ним не выполняются. В методе отладки элемент управления просто возвращается после выполнения строки ожидания.
как я могу сделать эту работу, так как требование для выполнения clr без блокировки основного потока, чтобы другая работа могла хорошо продолжаться в БД. Мне действительно нужно это, чтобы работать, и был на нем в течение 2 дней.
NB Это хорошо работает, если метод синхронизирован. И сохраненный сборочный процесс регистрируется как небезопасный на сервере SQL. Я использую MSSQL 2012 и 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):
}
}
}