Audit.Util.ShellServices.ConnectLogger C# (CSharp) Method

ConnectLogger() public method

public ConnectLogger ( System.Windows.Forms.RichTextBox box ) : Task
box System.Windows.Forms.RichTextBox
return Task
        public Task ConnectLogger(RichTextBox box)
        {
            return Task.Factory.StartNew(() =>
                {
                    while (!_source.Token.IsCancellationRequested)
                    {
                        string result;
                        var builder = new StringBuilder();
                        while (_log.TryDequeue(out result))
                        {
                            builder.AppendLine(result);
                        }
                        if (builder.Length > 0)
                        {
                            box.Invoke(new Action(() =>
                                {
                                    box.AppendText(builder.ToString());
                                    box.ScrollToCaret();
                                }));
                        }
                        _source.Token.WaitHandle.WaitOne(TimeSpan.FromMilliseconds(250));
                    }
                }, _source.Token);
        }