【问题标题】:OUT param is not changingOUT 参数不变
【发布时间】:2019-12-03 14:26:14
【问题描述】:

我有问题。我正在以以下形式与 api 交谈:

SomeClass variable2; SomeClass variable2; var result = API.doSomeStaff(variable1, out variable2);

在修改variable2 参数之前,我收到了来自API.doSomeStaff 的响应 如果我添加一些 Thread.Sleep(100) 一切都很棒。但我不喜欢这种方法,所以我想制作一些在修改variable2 时触发的事件。并发回修改后的variable2

您能否帮助我如何通过事件或任何其他合适的选项来做到这一点。

【问题讨论】:

  • 我不明白你的问题是什么。 Thread.Sleep(100)out 参数有什么关系?
  • doSomeStaff 方法内部发生了什么?
  • @SᴇM 我的意思是,在doSomeStaff 内部,它以某种方式处理并且没有与结果同步设置,换句话说,当我有result.type="success" variable2 仍然是空的时我需要。我需要的是改变variable2
  • @ArtemIgnatovich 我无权使用doSomeStaff 方法
  • 您的问题不是很清楚,请参考指南link,您需要帮助了解您在这篇文章中不太清楚的问题。您需要解释您正在与之交互的API 是做什么的?还有你的最终目标是什么?

标签: c# asp.net multithreading events


【解决方案1】:
public class Api
{
    public event EventHandler<string> ValueChanged;
    public string SomeMethod(string a)
    {
        //do your logic here, if true then invoke the event
        if (a.Length > 0)
        {
            ValueChanged?.Invoke(EventArgs.Empty, "String length is greater than zero!!!");         
        }
        return a.ToUpper();
    }
}

您需要在您的 api 中实现一个事件并在发生某些逻辑时调用它,然后在不为空时调用该事件。由你决定事件的数据类型,在上面的例子中我使用字符串。

【讨论】:

  • 不要发布代码图片,将代码作为文本发布。否则这没有用。
  • 感谢您的回答,我无权访问 api。我需要从我调用 api 方法的地方列出到 out 参数更改
猜你喜欢
  • 2023-03-25
  • 2013-10-23
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-03
  • 2014-08-13
相关资源
最近更新 更多