我有一個電話,我需要等待完成才能繼續。這是一個beginSet創建一個opportunitySet,我有問題將其轉換爲等待的任務。如何從asyc發送任務
_context.BeginSaveChanges(OnCreateOpportunityComplete, _context.OpportunitySet);
/// <summary>
/// Callback method invoked when Account is done being created.
/// </summary>
/// <param name="result"></param>
private void OnCreateOpportunityComplete(IAsyncResult result)
{
try
{
_context.EndSaveChanges(result);
Opportunity createdOpportunity = result.AsyncState as Opportunity;
BeginRetrieveOpportunity(createdOpportunity.OpportunityId);
}
catch (SystemException se)
{
_syncContext.Send(new SendOrPostCallback(showErrorDetails), se);
}
}
private void BeginRetrieveOpportunity(Guid _id)
{
try
{
DataServiceQuery<Opportunity> query = (DataServiceQuery<Opportunity>)_context
.OpportunitySet.Where<Opportunity>(o => o.OpportunityId == _id);
query.BeginExecute(OnRetrieveOpportunityComplete, query);
}
catch (DataServiceQueryException dsqe)
{
_syncContext.Send(new SendOrPostCallback(showErrorDetails), dsqe);
}
}
有沒有人知道如何處理這個問題?我已經嘗試了很多次,創建任務時似乎存在一些問題。或者,如果還有其他方法可以等待創建集合中的多個機會,那麼這也是非常棒的。
編輯:爲了澄清,代碼中的第一行是我主要功能中的一行,在收集了所有我想要添加的機會後,我調用create方法來調用CRM套件中提供的插入。這確實會插入,但是在程序到達結尾時,往往不是所有的機會都沒有被創建。
你看過TaskFactory的.FromAsync方法嗎? – Ben
這就是我最初嘗試過的,但在創建任務時遇到問題。初始化給我帶來了麻煩,然後當我想我得到它時「非泛型類型'MySolution.ServiceReference.Task'不能與類型參數一起使用」... –