Esempio n. 1
0
            bool HandleWriteCharacters(IAsyncResult result)
            {
                int byteCount = Math.Min(bufferLength / 4 * 3, count - count % 3);
                int charCount = byteCount / 3 * 4;
                int charOffset;

                if (result == null)
                {
                    result = writer.BeginGetBuffer(charCount, onWriteCharacters, this);
                    if (!result.CompletedSynchronously)
                    {
                        return(false);
                    }
                }

                byte[] chars = writer.EndGetBuffer(result, out charOffset);

                writer.Advance(encoding.GetChars(this.buffer, this.offset, byteCount, chars, charOffset));
                this.offset += byteCount;
                this.count  -= byteCount;

                return(true);
            }