gpt4 book ai didi

c# - 如何从 WCF 回调类更新 GUI 标签?

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:23 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何从我的 WCF 回调类:MyCallBack 访问我的 GUI 类:WinClient 中的方法。 MyCallBack.JoinServiceCallback(string message) 方法有效,例如,如果我使用 MessageBox.Show(message); 它有效。

我在 GUI 类中有一个方法,SetLabelMsg(string message){}。但我只是不知道如何从回调类访问它。我是 C# 的新手,我一直在研究委托(delegate)和线程并调用。但我似乎无法将这些点联系起来。希望有人能够帮助我!

//this method should change te text of the GUI label
public class MyCallBack : IServiceCallback
{
//this method should change the text of the GUI label
public void JoinServiceCallback(string message)
{
MessageBox.Show(message + " joined the service");
}
}


public partial class WinClient : Form
{
public void SetLabelMsg(string message)
{
lblMsg.Text = message;
}
}

最佳答案

我从一位同学那里得到了很大的帮助。

public class MyCallBack : IServiceCallback
{
private static Action<string> _changeText = null;

public static void SetDelegate(Action<string> nAction)
{
_changeText = nAction;
}

public void JoinServiceCallback(string message)
{
if(_changeText != null)
{
_changeText(message);
}
}
}


public partial class WinClient : Form
{

public WinClient(Customer customer)
{
MyCallBack.SetDelegate(SetLabelMsg);

public void SetLabelMsg(string message)
{
lblMsg.Text = message;
}
}
}

关于c# - 如何从 WCF 回调类更新 GUI 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20413880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com