簡體   English   中英

從普通方法調用異步方法 c#

[英]Call async Method from a normal method c#

我正在嘗試從普通方法調用異步方法。 我在這里有以下兩個問題:

  1. 當我在 A 類中使用Task.Run到 B 類的方法時,JQuery 沒有收到調用。
  2. 我無法使用await因為它會引發此錯誤:

    await 只能在異步方法中使用

我不確定我遇到的第一個問題是什么問題。 其次,有沒有辦法在調用 classB 時使用await ,因為當我從不同的異步方法進行調用時它似乎可以工作。

    public class A :IA
    {
        public A ()
    {
        consumer.Received += Received;
    }
        public void Received(object sender, BasicDeliverEventArgs ea)
        { 
           //get message here and send to classB 
            Task.Run(() => classB.PingMesssage(Message));
        }
    }


    public class B 
    {

       public async Task PingMesssage(string message)
        {
             await InvokeClientMethodToAllAsync("callJQueryMethod", "message"); //calling js here
        }
    }

您可以使Received異步並等待對PingMessage的調用:

public async void Received(object sender, BasicDeliverEventArgs ea) {
    await classB.PingMessage(message);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM