Guest User

Untitled

a guest
Feb 1st, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.67 KB | None | 0 0
  1. public class Logger
  2. {
  3.     private Task previousTask = Task.Run(() => Task.FromResult(true));
  4.     private readonly object key = new object();
  5.  
  6.     public void Log(string message)
  7.     {
  8.         lock (key)
  9.         {
  10.             previousTask = previousTask.ContinueWith(t => ActuallyLog(message)
  11.                 , CancellationToken.None
  12.                 , TaskContinuationOptions.None
  13.                 , TaskScheduler.Default);
  14.         }
  15.     }
  16.  
  17.     private async Task ActuallyLog(string message)
  18.     {
  19.         System.Diagnostics.Debug.Print("Logger: thread {0}, {1}", Thread.CurrentThread.ManagedThreadId, message);
  20.         await Task.Yield();  // SaveChangesAsync();
  21.     }
  22. }
Advertisement
Add Comment
Please, Sign In to add comment