silverlight异步变同步

最近,因为异步访问ria的原因,弄的数据混乱,所以在别人的帮忙后,把异步改为了同步,问题慢慢的就解决了。

异步,我的理解是可以同时执行多个ria 服务的函数,并且后面代码同步执行。

同步的步骤是:

1 .安装 Asysc for .net framework 4.0 这个包

   安装完,多了一个page.config 文件,同时引用上了几个task的扩展程序集

2. 扩展task,参考代码

   

public static class OperationExtensions3
    {
        public static Task<T> AsTask<T>(this T operation)
          where T : OperationBase
        {
            TaskCompletionSource<T> tcs =
              new TaskCompletionSource<T>(operation.UserState);

            operation.Completed += (sender, e) =>
            {
                if (operation.HasError && !operation.IsErrorHandled)
                {
                    tcs.TrySetException(operation.Error);
                    operation.MarkErrorAsHandled();
                }
                else if (operation.IsCanceled)
                {
                    tcs.TrySetCanceled();
                }
                else
                {
                    tcs.TrySetResult(operation);
                }
            };

            return tcs.Task;
        }
    }

  3.调用方法

private async Task<bool> InitMenu(RoleFunction selectRole)
        {
            _menuDomainContext = new MenuDomainServices();
            InvokeOperation<List<Menu>> m = await _menuDomainContext.GetList(UserHelperInfo.GetCurrentAuthInfo()).AsTask();
     }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值