async private Task RefreshList()
        {
            //if (listView.InvokeRequired)
            //{
            //    RefreshListCallback d = new RefreshListCallback(RefreshList);
            //    this.BeginInvoke(d);
            //}
            //else
            {
                CancelRefreshList();
                listView.Items.Clear();
                _itemCollection.Clear();

                if (_exObject == null)
                {
                    return;
                }

                var instatnce = await _exObject.GetInstanceAsync();

                if (instatnce is SqlFDBImageCatalogClass)
                {
                    SqlFDBImageCatalogClass layer = (SqlFDBImageCatalogClass)instatnce;

                    _cancelWorker = false;
                    _gui_worker.RunWorkerAsync(await layer.ImageList());
                }
                else if (instatnce is IRasterCatalogClass)
                {
                    IRasterCatalogClass layer = (IRasterCatalogClass)instatnce;

                    _cancelWorker = false;
                    //_gui_worker.RunWorkerAsync(layer.ImageList);
                    //
                    // Wirft eine Fehler beim Lesen, wenn List in einem
                    // Workerthread ausgeführt wird...
                    // funzt nur bei SQL Server!!
                    //
                    await worker_DoWork(_gui_worker, new DoWorkEventArgs(await layer.ImageList()));
                }
                else if (instatnce is pgImageCatalogClass)
                {
                    pgImageCatalogClass layer = (pgImageCatalogClass)instatnce;

                    _cancelWorker = false;
                    _gui_worker.RunWorkerAsync(await layer.ImageList());
                }
                else if (instatnce is SQLiteFDBImageCatalogClass)
                {
                    SQLiteFDBImageCatalogClass layer = (SQLiteFDBImageCatalogClass)instatnce;

                    _cancelWorker = false;
                    _gui_worker.RunWorkerAsync(await layer.ImageList());
                }
            }
        }
        private void RefreshList()
        {
            if (listView.InvokeRequired)
            {
                RefreshListCallback d = new RefreshListCallback(RefreshList);
                this.BeginInvoke(d);
            }
            else
            {
                CancelRefreshList();
                listView.Items.Clear();
                _itemCollection.Clear();

                if (_exObject == null)
                {
                    return;
                }
                if (_exObject.Object is SqlFDBImageCatalogClass)
                {
                    SqlFDBImageCatalogClass layer = (SqlFDBImageCatalogClass)_exObject.Object;

                    _cancelWorker = false;
                    _gui_worker.RunWorkerAsync(layer.ImageList);
                }
                else if (_exObject.Object is AccessFDBImageCatalogClass)
                {
                    AccessFDBImageCatalogClass layer = (AccessFDBImageCatalogClass)_exObject.Object;

                    _cancelWorker = false;
                    //_gui_worker.RunWorkerAsync(layer.ImageList);
                    //
                    // Wirft eine Fehler beim Lesen, wenn List in einem
                    // Workerthread ausgeführt wird...
                    // funzt nur bei SQL Server!!
                    //
                    worker_DoWork(_gui_worker, new DoWorkEventArgs(layer.ImageList));
                }
                else if (_exObject.Object is pgImageCatalogClass)
                {
                    pgImageCatalogClass layer = (pgImageCatalogClass)_exObject.Object;

                    _cancelWorker = false;
                    _gui_worker.RunWorkerAsync(layer.ImageList);
                }
                else if (_exObject.Object is SQLiteFDBImageCatalogClass)
                {
                    SQLiteFDBImageCatalogClass layer = (SQLiteFDBImageCatalogClass)_exObject.Object;

                    _cancelWorker = false;
                    _gui_worker.RunWorkerAsync(layer.ImageList);
                }
            }
        }