Пример #1
0
        private void Init()
        {
            _worker = new BackgroundWorker
            {
                WorkerSupportsCancellation = true,
                WorkerReportsProgress = true
            };
            _worker.DoWork += delegate (object sender, DoWorkEventArgs args)
            {
                _db = new MonetDatabase(ConnectionInfo.ToString());

                args.Result = _db.GetDatabases();
            };
            _worker.RunWorkerCompleted += delegate (object sender, RunWorkerCompletedEventArgs args)
            {
                if (dgwDbList.Columns.Count == 0)
                    return;

                var databases = (List<MonetDatabaseInfo>)args.Result;

                dgwDbList.Rows.Clear();

                foreach (var database in databases)
                {
                    dgwDbList.Rows.Add(new object[]
                        {
                            database.Database,
                            IoHelper.ToFileSize(database.Size),
                            database.Status
                        });
                }

                dgwDbList.ClearSelection();

            };
            _timer = new Timer
            {
                Enabled = true,
                Interval = 10000
            };
            _timer.Tick += delegate (object sender, EventArgs args)
            {
                if (_worker.IsBusy)
                    return;

                _worker.RunWorkerAsync();
            };
        }