1

次のコードがあります。

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、常に false です。

私は何が欠けていますか?

4

1 に答える 1

4

CompletedSynchronously プロパティは、操作が非同期ではなく同期的に完了したかどうかを示します。操作がまったく完了していないという意味ではありません。

于 2011-11-26T00:10:28.220 に答える