覆盖函数中的异步调用?

时间:2017-09-03 16:40:11

标签: asp.net asp.net-web-api nhibernate async-await signalr

这是我遇到的问题。我正在使用SignalR,并且在同一个项目中有一个WebAPI,我创建了一个如下所示的集线器:

public class TestHub : Hub
    {
        public static ConnectController cc = new ConnectController();

        public override Task OnDisconnected(bool stopCalled)
        {
            cc.Delete(Context.ConnectionId.ToString());
            Clients.All.onRecordHit(_hitCount);
            return base.OnDisconnected(stopCalled);
        }
        ....

此Delete函数完美运行,给定参数应为字符串。在Delete函数中,在创建Session时调用了一个ISESSION变量(因为我使用的是NHibernate)并且它表示它接受一个空值... 这是因为我不知何故需要使这个调用异步并具有返回基数。通话结束后会发生什么?如果是这样,最好的方法是什么?

[Route("api/Connect/byConID/{ConID}")]
        public void Delete(string ConID)
        {
            var connectInfo = Get(ConID);

            using (ISession session = NHibernateSession.OpenSession("Hubconnects"))
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    session.Delete(connectInfo);
                    transaction.Commit();
                }
            }
        }

0 个答案:

没有答案