+
+ public virtual Task WriteAsync (char[] buffer, int index, int count)
+ {
+ return Task.Factory.StartNew (l => {
+ var t = (Tuple<TextWriter, char[], int, int>) l;
+ t.Item1.Write (t.Item2, t.Item3, t.Item4);
+ }, Tuple.Create (this, buffer, index, count));
+ }
+
+ public virtual Task WriteAsync (string value)
+ {
+ return Task.Factory.StartNew (l => {
+ var t = (Tuple<TextWriter, string>) l;
+ t.Item1.Write (t.Item2);
+ }, Tuple.Create (this, value));
+ }
+
+ public virtual Task WriteLineAsync ()
+ {
+ return WriteAsync (CoreNewLine);
+ }
+
+ public virtual Task WriteLineAsync (char value)
+ {
+ return Task.Factory.StartNew (l => {
+ var t = (Tuple<TextWriter, char>) l;
+ t.Item1.WriteLine (t.Item2);
+ }, Tuple.Create (this, value));
+ }
+
+ public Task WriteLineAsync (char[] buffer)
+ {
+ return Task.Factory.StartNew (l => {
+ var t = (Tuple<TextWriter, char[]>) l;
+ t.Item1.WriteLine (t.Item2);
+ }, Tuple.Create (this, buffer));
+ }
+
+ public virtual Task WriteLineAsync (char[] buffer, int index, int count)
+ {
+ return Task.Factory.StartNew (l => {
+ var t = (Tuple<TextWriter, char[], int, int>) l;
+ t.Item1.WriteLine (t.Item2, t.Item3, t.Item4);
+ }, Tuple.Create (this, buffer, index, count));
+ }
+
+ public virtual Task WriteLineAsync (string value)
+ {
+ return Task.Factory.StartNew (l => {
+ var t = (Tuple<TextWriter, string>) l;
+ t.Item1.WriteLine (t.Item2);
+ }, Tuple.Create (this, value));
+ }
+#endif
+ }