ReadLineAsync() public method

public ReadLineAsync ( Encoding Encoding = null, int MaxBytesToRead = DefaultMaxBytesToRead ) : Task
Encoding System.Text.Encoding
MaxBytesToRead int
return Task
コード例 #1
0
		async public Task TestReadLineAsync()
		{
			var MemoryStream = new MemoryStream();
			var StreamWriter = new StreamWriter(MemoryStream) { AutoFlush = true };
			StreamWriter.Write("a\r\n");
			StreamWriter.Write("\r\n");
			StreamWriter.Write("bb\r\n");
			StreamWriter.Write("ccc\r\n");
			StreamWriter.Write("dddd\r\n");

			MemoryStream.Position = 0;
			var Stream = new NodeBufferedStream(MemoryStream, 3);

			Assert.AreEqual("a", await Stream.ReadLineAsync(Encoding.UTF8));
			Assert.AreEqual("", await Stream.ReadLineAsync(Encoding.UTF8));
			Assert.AreEqual("bb", await Stream.ReadLineAsync(Encoding.UTF8));
			Assert.AreEqual("ccc", await Stream.ReadLineAsync(Encoding.UTF8));
			Assert.AreEqual("dddd", await Stream.ReadLineAsync(Encoding.UTF8));
		}
コード例 #2
0
		async public Task ReadLineAsyncLatencyIssuesTest()
		{
			ThreadPool.SetMaxThreads(1, 1);
			var MemoryStream = new ProducerConsumerStream(new ProducerConsumer<byte>());
			var StreamWriter = new StreamWriter(MemoryStream) { AutoFlush = true };
			StreamWriter.Write("line1\r");

			var Task2 = Task.Run(async () =>
			{
				await Task.Delay(2);
				StreamWriter.Write("\n");
				StreamWriter.Write("line2\r\n");
			});

			var Stream = new NodeBufferedStream(MemoryStream, 3);

			Assert.AreEqual("line1", await Stream.ReadLineAsync(Encoding.UTF8));
			Assert.AreEqual("line2", await Stream.ReadLineAsync(Encoding.UTF8));

			await Task2;
		}