用于异步操作的Silverlight顺序操作
我有3个操作需要按顺序处理,它们是用于异步操作的Silverlight顺序操作,silverlight,asynchronous,Silverlight,Asynchronous,我有3个操作需要按顺序处理,它们是 GetMain信息 获取详细信息1 获取详细信息2 我是这样做的代码如下,但我认为这是不干净的。我想知道另一种按顺序进行异步操作的方法 GetMainInformation.Completed += GetDetails1; GetDetails1.Completed += GetDetails2; 您可以创建一个队列。大概是这样的: GetMainInformation.Completed += GetMainInformationCompleted Ge
GetMainInformation.Completed += GetDetails1;
GetDetails1.Completed += GetDetails2;
您可以创建一个队列。大概是这样的:
GetMainInformation.Completed += GetMainInformationCompleted
GetDetails1.Completed += GetDetails1Completed
GetDetails2.Completed += GetDetails2Completed
启动请求:
requestCounter = 3;
GetMainInformationAsync();
GetDetails1();
GetDetails2();
在每个已完成的功能中:
void GetMainInformationCompleted()
{
// Store result in member variable
requestCounter--;
if (requestCounter == 0)
{
ProcessRequest();
}
}
您可以创建一个队列。大概是这样的:
GetMainInformation.Completed += GetMainInformationCompleted
GetDetails1.Completed += GetDetails1Completed
GetDetails2.Completed += GetDetails2Completed
启动请求:
requestCounter = 3;
GetMainInformationAsync();
GetDetails1();
GetDetails2();
在每个已完成的功能中:
void GetMainInformationCompleted()
{
// Store result in member variable
requestCounter--;
if (requestCounter == 0)
{
ProcessRequest();
}
}
如果代码必须以特定的顺序和顺序运行,为什么不在GetDetails1的oncompletion中调用Getdetails2,等等,这样它就可以运行了?或让您的服务有一个调用所有3个的函数,如果数据是相关的,那么在其中包含列表/数组的数据结构可能是可行的,例如
String CustomerName,
String Address,
String PhoneNumber,
List<orders> Orders,
List<itemsMarked> ItemsMarked
字符串客户名称,
字符串地址,
字符串电话号码,
列出订单,
列出标记的项目
当main信息进入客户部件时,details1进入订单,details2进入标记的项目等。如果代码必须按照特定的顺序运行,那么为什么不在GetDetails1的oncompletion中调用Getdetails2,等等,这样它就可以运行了?或让您的服务有一个调用所有3个的函数,如果数据是相关的,那么在其中包含列表/数组的数据结构可能是可行的,例如
String CustomerName,
String Address,
String PhoneNumber,
List<orders> Orders,
List<itemsMarked> ItemsMarked
字符串客户名称,
字符串地址,
字符串电话号码,
列出订单,
列出标记的项目
当主信息进入客户零件时,详细信息1进入订单,详细信息2进入标记项目等。您可以使用Caliburn Micro的IResult和Corroutines 您可以使用Caliburn Micro的IResult和协同程序