コード例 #1
0
        private unsafe void ProcessBeginTran(IMessageChannel channel, MessageChunk *first)
        {
            var req = new BeginTranRequire();

            req.FastReadFrom(first);
            channel.ReturnMessageChunks(first);
            NativeApi.BeginTransaction(req.ReadCommitted, req.WaitHandle, channel.RemoteRuntimeId);
        }
コード例 #2
0
ファイル: AppStoreApi.cs プロジェクト: enjoycode/appbox.clr
        public async ValueTask <IntPtr> BeginTransactionAsync(bool readCommitted)
        {
            var ts  = taskPool.Allocate();
            var req = new BeginTranRequire(readCommitted, ts.GCHandlePtr);

            channel.SendMessage(ref req);
            var msg = await ts.WaitAsync();

            taskPool.Free(ts);
            //TODO:异常处理
            return(msg.Data1);
        }