我需要异步调用Web服务上的Register()方法(使用C#)。 Web服务中实际Register方法的实现不返回任何值。 但是如果方法失败,它会引发异常。 鉴于此,以下代码看起来好吗?

public void RegisterProduct(string productName)
{
    await RegisterProductAsync();
}


private async static Task RegisterProductAsync(string productName)
{
    try
    { 
         await myWebService.Register(productName);   
    }
    catch(Exception ex)
    {
        LogException(ex);
    }
}

谢谢你的帮助。

#1楼 票数:0

我可能会写下面的代码:

    private async static Task<int> RegisterProductAsync(string productName)
    {
        try
        {
            await Task.Run(() => myWebService.Register(productName));
            return 0;
        }
        catch (Exception ex)
        {
            LogException();
            return 1;
        }
    }

    public async Task<int> RegisterProduct(string productName)
    {
        var result = await RegisterProductAsync(productName);
        return result;
    }

一直遵循规则'异步'。

#2楼 票数:0

添加服务后,我猜您知道生成了代理文件。

在代理文件中,您可以记下关联的async函数,该函数返回System.Threading.Tasks.Task<xxxxxx>以获取返回值。

因此,对于Register ,您可以在代理文件中记下函数RegisterAsync(string)

您可以调用该函数(在您的情况下: RegisterAsync(string ))进行异步调用。

myWebService.RegisterAsync(productName);

  ask by Jimmy translate from so

未解决问题?本站智能推荐:

5回复

创建异步网络服务方法

我试图阅读异步方法,现在正在尝试创建自己的异步方法。 该方法是一个返回错误日志列表的网络服务调用。 我不确定我是否理解正确,所以我想我会分享我的代码,看看我是否应该做一些不同的事情。 我想让代码做的就是通过调用方法GetAllErrorLogs()返回错误日志列表,这是一个同步方法。 由于获取所有
1回复

如何创建一个异步调用一堆方法的方法

我有以下方法: 基本上,它遍历一堆日期,并调用一个称为ConfigureJob的等待方法(对Web服务进行HTTP调用)。 现在,我要调用此方法。 我试过了: 这将是无操作并立即退出。 我也尝试过: 这也一样。 看来我必须使CreateSchedule返回
1回复

如何在C#中异步调用少数方法?

我知道这个问题在堆栈溢出时被问过很多次,但我正在寻找关于我下面代码的一些建议。 在我的应用程序中有许多难以修改的同步方法。 我无法将所有内容更改为异步等待。 但我想异步运行几个方法。 我为此编写了一些代码。 我还添加了有助于理解我的要求的评论。 这是我的代码: 任何人都可以审查并建议我最好的方
1回复

调用异步方法

我正在尝试使用这样的await运算符调用异步方法SendParkInfo方法 await Task.WhenAny(parkList); 并await Task.WhenAny(parkInfo); parkInfo具有SendParkInfo方法对象 这是我的代码的一部分。
1回复

异步方法不调用

调用awaitMethod()不打印的第二个电话console.printline在GetFilmCount()也不会在最后print语句awaitMethod()被调用。 唯一的输出是第一次调用GetFilmCount()时的Console.printLine() ()。 我在这里做错
2回复

在不等待的情况下调用异步方法

我试图在不等待结果的情况下调用异步方法(在ASP.NET Web API 2应用程序中)。 我的意思是我希望主线程继续执行并且不等待被调用的方法来完成。 我正在尝试这个片段: 如你所见,我尝试了不同的方法; 但没有他们给我我想要的东西。 你有什么想法,对我有什么帮助?
2回复

考虑到使用Task.Run异步运行任何方法的能力,.Net Framework中的* Async方法的目的是什么?

简短的问题: 为什么.Net Framework添加了很多* Async版本的方法而不是开发人员只是使用Task.Run来异步运行同步方法? 详细问题: 我理解异步性的概念。 我知道Tasks 我知道async / await关键字。 我知道.Net
2回复

在不等待答案的情况下调用方法异步

我有MVC应用程序,我想保留活动日志中有关我网站中的活动,例如,如果用户登录成功,则向我的数据库插入描述此活动的行(名称为X登录的用户)在时间Y与IP的Z. 问题是我需要等待结果,我不关心结果,我不希望结果阻止我,我想将它发送给函数(DB函数中的更新Activity表) )并继续。