System.Data.SqlClient.TdsParser.WriteStreamFeed C# (CSharp) Méthode

WriteStreamFeed() private méthode

private WriteStreamFeed ( StreamDataFeed feed, System.Data.SqlClient.TdsParserStateObject stateObj, int len ) : System.Threading.Task
feed StreamDataFeed
stateObj System.Data.SqlClient.TdsParserStateObject
len int
Résultat System.Threading.Task
        private async Task WriteStreamFeed(StreamDataFeed feed, TdsParserStateObject stateObj, int len)
        {
            TdsOutputStream output = new TdsOutputStream(this, stateObj, null);
            byte[] buff = new byte[constBinBufferSize];
            int nWritten = 0;
            do
            {
                int nRead = 0;
                int readSize = constBinBufferSize;
                if (len > 0 && nWritten + readSize > len)
                {
                    readSize = len - nWritten;
                }

                Debug.Assert(readSize >= 0);

                if (_asyncWrite)
                {
                    nRead = await feed._source.ReadAsync(buff, 0, readSize).ConfigureAwait(false);
                }
                else
                {
                    nRead = feed._source.Read(buff, 0, readSize);
                }

                if (nRead == 0)
                {
                    return;
                }

                if (_asyncWrite)
                {
                    await output.WriteAsync(buff, 0, nRead).ConfigureAwait(false);
                }
                else
                {
                    output.Write(buff, 0, nRead);
                }

                nWritten += nRead;
            } while (len <= 0 || nWritten < len);
        }
TdsParser