You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
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);
|
|
}
|
|
}
|
|
}
|