diff options
Diffstat (limited to 'MediaBrowser.ServerApplication/Splash/SplashForm.cs')
| -rw-r--r-- | MediaBrowser.ServerApplication/Splash/SplashForm.cs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/MediaBrowser.ServerApplication/Splash/SplashForm.cs b/MediaBrowser.ServerApplication/Splash/SplashForm.cs new file mode 100644 index 000000000..1260c3405 --- /dev/null +++ b/MediaBrowser.ServerApplication/Splash/SplashForm.cs @@ -0,0 +1,45 @@ +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); + } + } +} |
