| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | using System;using System.ComponentModel;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;namespace MediaBrowser.ServerApplication.Splash{    public partial class SplashForm : Form    {        private readonly TaskScheduler _uiThread;                private readonly Progress<double> _progress;        public SplashForm(Version version, Progress<double> progress)        {            InitializeComponent();            lblVersion.Text = string.Format("Version {0}...", version);            _progress = progress;                        progress.ProgressChanged += progress_ProgressChanged;            _uiThread = TaskScheduler.FromCurrentSynchronizationContext();        }        async void progress_ProgressChanged(object sender, double e)        {            await Task.Factory.StartNew(() =>            {                var width = e * 6.48;                panelProgress.Width = Convert.ToInt32(width);            }, CancellationToken.None, TaskCreationOptions.None, _uiThread);        }        protected override void OnClosing(CancelEventArgs e)        {            _progress.ProgressChanged += progress_ProgressChanged;            base.OnClosing(e);        }    }}
 |