无法在C#中异步运行方法

时间:2011-11-26 00:04:28

标签: c# asynchronous methods mappoint

我有以下代码:

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 个答案:

答案 0 :(得分:4)

CompletedSynchronously Property表示操作是同步完成而不是异步完成。这并不意味着操作根本没有完成。