AsyncCompletedEventArgs.UserState 属性
类型:System.Object
指示用户状态的唯一 Object。
如果类支持多个异步方法或对单个方法的多次调用,则可以通过检查 UserState 属性的值确定哪个任务引发了 MethodNameCompleted 事件。 当标记(称为任务 ID)对应的异步任务开始和完成时,您的代码需要跟踪这些标记。
此属性的值是在对启动任务的异步方法进行初始调用时设置的。
WCF中:
public string GetMonitorPage()
{
try
{
return UtilityClass.ConfigString.strMonitorPage;
}
catch (Exception ex)
{
return string.Empty;
}
}
后台代码中:
string strPlayMonitor = "";
foreach (Graphic objGraphic in graphicList)
{
Graphic objEditgraphic = objGraphic;
strPlayMonitor = strPlayMonitor + objEditgraphic.Attributes["MonitorId"].ToString() + ",";
}
strPlayMonitor = strPlayMonitor.Substring(0,strPlayMonitor.Length-1);
MapService.Service1Client objWcfAgency1 = SilverlightMap.UtilityClass.WcfAgency.GetMapServer();
objWcfAgency1.GetMonitorPageAsync(strPlayMonitor); //传的值 在WCF中 GetMonitorPage并不需要传参数
objWcfAgency1.GetMonitorPageCompleted += new EventHandler<MapService.GetMonitorPageCompletedEventArgs>(objWcfAgency_GetMonitorPageCompleted);
void objWcfAgency_GetMonitorPageCompleted(object sender, MapService.GetMonitorPageCompletedEventArgs e)
{
try
{
HtmlPage.Window.Navigate(new Uri(e.Result + "?Video=" + e.UserState, UriKind.Relative), "__blank", "Height=500,Width=670,Top=100,left=200");
}
catch (Exception ex)
{
MapService.Service1Client objWcfAgency = SilverlightMap.UtilityClass.WcfAgency.GetMapServer();
objWcfAgency.RecordExceptionToFileAsync(ex.Message);
}
}