Не могу запустить метод асинхронно в C # - PullRequest
1 голос
/ 26 ноября 2011

У меня есть следующий код:

public partial class Main : Form
{
private delegate void LoadMapPointRegion();

private LoadMapPointRegion lmprd;
private MapPoint.Application mpApp;
private MapPoint.Map mpMap;
public Main()
{
    InitializeComponent();

    lmprd = new LoadMapPointRegion(mpControl_LoadRegion);
    lmprd.BeginInvoke(new AsyncCallback(mpControl_RegionLoaded), null);
}

private void mpControl_LoadRegion()
{
    mpControl.NewMap(MapPoint.GeoMapRegion.geoMapNorthAmerica);
    mpMap = mpControl.ActiveMap;
    mpApp = mpMap.Application;
}

private void mpControl_RegionLoaded(IAsyncResult iar)
{
    MessageBox.Show("MapPoint loaded async: " + iar.CompletedSynchronously.ToString());
}
}

Это должно загрузить форму и разрешить взаимодействие с ней во время работы mpControl_LoadRegion. Загрузка областей точек карты занимает от 5 до 10 секунд, поэтому я делаю это асинхронно.

Однако iar.CompletedSynchronously всегда ложно.

Чего мне не хватает?

1 Ответ

4 голосов
/ 26 ноября 2011

Свойство CompletedSynchronously указывает, была ли операция завершена синхронно, а не асинхронно.Это не значит, что операция вообще не была завершена.

...