小编Jes*_*hie的帖子

等待任务完成后不返回

我遇到了一个任务正在完成但没有返回的问题.我在不同的服务器上有一个网站和一个Web服务.该网站调用Web服务,该服务使用具有函数myFunction()的库.如果我从Web服务的服务器上的控制台应用程序调用myFunction,它将按预期返回.但是,当我从网站拨打电话到Web服务来调用myFunction()时,它将进入"步骤3",而不是"步骤4".我有以下调用的简化版本.

private string myFunction()
{
    string myStr = myDoWork().GetAwaiter().GetResult();

    return myStr;
}

private async Task<string> myDoWork()
{
    logger.Debug("Step 1");
    string answer = await aFunction();

    logger.Debug("Step 4");

    return answer;
}

public async Task<string> aFunction()
{
    logger.Debug("Step 2");
    return await bFunction(CancellationToken.None);
}

AsyncLock myLock = new AsyncLock();
public Task<string> bFunction(CancellationToken cToken)
{
    return Task.Run(
        async () =>
        {
            using (await myLock(cToken))
            {
                logger.Debug("Step 3");
                result = "Hello";
                return result;
            }
        },
        cToken);
}
Run Code Online (Sandbox Code Playgroud)

我是异步和等待的新手,所以任何帮助都将不胜感激.

c# asynchronous

9
推荐指数
1
解决办法
4927
查看次数

为电报API创建授权密钥后的步骤

我一直在困扰于实现Telegram API的C#版本,但是我陷入了困境。我已经成功地弄清楚了如何创建授权密钥,但是我不知道从哪里可以找到。创建授权密钥后,有人知道下一步吗?该文档是如此难以遵循。

供参考:Telegram API

注意:我没有使用Bot API。我正在尝试使用常规API。

c# api telegram

2
推荐指数
1
解决办法
1599
查看次数

标签 统计

c# ×2

api ×1

asynchronous ×1

telegram ×1