我有以下代码:
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
运行时加载表单并启用与它的交互。
加载 map 点区域需要 5 到 10 秒,这就是我异步进行加载的原因。
但是 iar.CompletedSynchronously
始终为 false。
我错过了什么?
最佳答案
CompletedSynchronously Property指示操作是否同步完成而不是异步完成。这并不意味着操作根本没有完成。
关于c# - 无法在 C# 中异步运行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8275272/