【问题标题】:How to call an async function inside web-service method in c#如何在 C# 中的 Web 服务方法中调用异步函数
【发布时间】:2018-05-07 06:34:05
【问题描述】:

##如何在c#的web服务方法中调用异步函数##

这是我的示例代码,我想从DisplayNextWord 调用btndisplayword_Click,而DisplayNextWord 是异步的,因此无法正常工作

[WebMethod]
    public static void DisplayNextWord(int id)
    {

        ///How to call below async function inside webservice Here

    }


protected async void btndisplayword_Click(object sender, EventArgs e)
    {


    }

【问题讨论】:

标签: c# asp.net


【解决方案1】:

您不能将非静态函数调用为静态函数。将点击事件设为静态或 DisplayNextWord 方法设为非静态。

    public void DisplayNextWord(int id)
    {
        btndisplayword_Click(null, null);
    }

    protected async void btndisplayword_Click(object sender, EventArgs e)
    {


    }

【讨论】:

  • 当它是 ASPX 代码的一部分时,一个 webmethod 需要是一个静态方法。但是,如果它是 web 服务方法的一部分,它可以是一个实例。在这里,它是 aspx 的一部分(有一个按钮单击处理程序),并且处理程序本身需要是实例之一以允许事件绑定
【解决方案2】:
此代码有效......####
 [WebMethod]
            public static void DisplayWord(int id)
            {

                SpellingBee_spellbyte Sg = new SpellingBee_spellbyte();//pageclassname
                Task.Run(async () => await Sg.getstartWord(id));


            }


  protected async Task getstartWord(int tagId)
        {
         }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 2016-03-08
    相关资源
    最近更新 更多